我有一个带有计算属性的控制器formattedNotificationTime
。这应该连接其底层模型中的两个属性 (notifHours
和notifMinutes
) 并将结果返回到屏幕。
我的问题是模型属性总是undefined
在从控制器访问时 - 给混合添加一些混乱,当使用从模板访问时它们正确返回到屏幕{{ model.notifHours }}
我怀疑我在做一些根本错误的事情/在以下 3 段代码中的某个地方存在很大的误解:
模型
这似乎在所有其他情况下都有效 - 最初加载了一个未填充的实例,然后由 AJAX 请求/承诺设置。
App.Member = Ember.Object.extend({
load: function () {
var member = this;
return $.ajax({
url: '/members/' + this.get('id'),
dataType: 'json'
}).then(function (m) {
member.setProperties(m);
return member;
});
}
});
路线
输入路线时,我创建一个Member
包含 Id 的实例,然后将其填充到setupController
. 同样,这似乎在大多数情况下都有效(我有许多文本框填充了模板上模型中的数据)。
App.SettingsRoute = Ember.Route.extend({
model: function () {
return App.Member.create({ id: App.memberId });
},
setupController: function (controller, model) {
model.load();
}
});
控制器
这就是我遇到问题的地方......无论我如何尝试从模型访问notifHours
/ notifMinutes
,它们总是返回undefined
. 值得一提的是,我也尝试过语法.property('model')
,但没有任何运气。
我怀疑我这个计算属性的实现根本上是错误的,我只是不确定如何/为什么..
App.SettingsAccountController = Ember.ObjectController.extend({
formattedNotificationTime: function() {
return this.get('model.notifHours') + ':' + this.get('model.notifMinutes');
}.property('formattedNotificationTime')
});