0

我更新了 Controller 的一个属性并尝试在console.log(). 在 HTML 页面中,我看到了属性的更新值,但 console.log() 仍然显示旧值。我做错什么了?如何在 console.log() 中获取新值?

详细信息在http://emberjs.jsbin.com/AHiVeGe/3/edit

4

1 回答 1

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中,我在设置纬度并 console.log 后更改了模型上的一个属性。

于 2013-10-14T02:41:55.937 回答