我尝试填充没有setupController
钩子的ember控制器,如下所示:
Ember.$.getJSON('http://url.com').then(function (response) {
self.store.pushPayload('record', response);
self.get('controllers.consultation').set('model', self.store.push('consultation', response.consultation));
});
控制器consultation
的模型包含hasMany字段records
export default DS.Model.extend({
records: DS.hasMany('record', { async: true }),
....
});
当我在模板中调用controller.records
时,它不起作用(空),但其他字段工作正常。
问题:为什么controller.records
为空?
注意:当我在consultation
控制器中创建包含咨询对象的字段时,它可以正常工作。
self.get('controllers.consultation').set('controllerObj', self.get('controllers.consultation').set('model', self.store.push('consultation', response.consultation)));
答案 0 :(得分:0)
我尝试在model.records
之后立即解决model
。
var controller = this.get('controllers.consultation');
Ember.$.getJSON('http://url.com').then(function (response) {
// ... your magic with store
// var consultation = consultation instance extracted from response
controller.set('model', consultation);
return consultation.get('records'); // or your custom api request for model.records
}).then(function (records) {
controller.set('modelRecords', records) // or your custom request records extraction
});
然后在控制器中你可以设置计算records
:
// controller
records: function() {
// your logic here
}.property('modelRecords.[]')
和{{records}}
应该在模板中工作
//template
{{records.length}}