【发布时间】:2013-05-12 19:47:12
【问题描述】:
我有一个具有计算属性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')
});
【问题讨论】:
标签: ember.js