我更新了Controller的一个属性,并尝试在console.log()
中使用它。在HTML页面中,我看到属性的更新值,但console.log()仍然显示旧值。我做错了什么?如何在console.log()中获取新值?
答案 0 :(得分:0)
首先,你必须在一个属性上使用'get'。而不是:
console.log(this.controllerFor('index').latitude);
写
console.log(this.controllerFor('index').get('latitude'));
其次,navigator.geolocation.getCurrentPosition异步运行并立即返回,因此您的console.log在设置纬度之前运行,但在它返回后运行。
第三,模型钩子在控制器建立之前运行。
第四,模型必须是一个对象。
我不太确定你想做什么,但是在http://emberjs.jsbin.com/AHiVeGe/6/edit中,我在设置了纬度并更改了它后,更改了模型上的属性。