【发布时间】:2013-10-14 00:06:21
【问题描述】:
我更新了 Controller 的一个属性并尝试在 console.log() 中使用它。在 HTML 页面中,我看到了属性的更新值,但 console.log() 仍然显示旧值。我做错了什么?如何在 console.log() 中获取新值?
【问题讨论】:
标签: javascript ember.js
我更新了 Controller 的一个属性并尝试在 console.log() 中使用它。在 HTML 页面中,我看到了属性的更新值,但 console.log() 仍然显示旧值。我做错了什么?如何在 console.log() 中获取新值?
【问题讨论】:
标签: javascript ember.js
首先,您必须在属性上使用“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 中,我在设置纬度后更改了模型上的一个属性并控制台记录它。
【讨论】: