我有一条路由通过RSVP哈希中的.store.query()
方法填充模型属性:
model(params, transition) {
return Ember.RSVP.hash({
myData: this.store.query('table-datum', parameters)
});
}
这会返回一个承诺,并且似乎根据Ember检查器将数据存入我的商店,我看到正确的行数,并且它们都具有填充数据的属性。
然后我在主视图模板中有一个简单的组件模板,其中有一个each
块来显示输出:
{{#each data as |result|}}
<tr>
<td>{{result.prop1}}</td>
<td>{{result.prop2}}</td>
</tr>
{{/each}}
我正在将属性传递给我的组件:
<div id="tableContainer">
{{result-table data=model.myData}}
</div>
但由于某种原因,模板绑定了正确的行数,但没有正确访问类的prop1
和prop2
位(所以我只得到20个左右的空白表行)
如果我尝试在模板中输出{{result}}
,则看起来像这样:
<client@model:table-datum::ember574:1>
我很确定数据存在某处,因为我的模板似乎没有出于某种原因访问这些属性。
关于在哪里寻找这个的任何想法?
编辑:记录result
对象看起来几乎是正确的,但不完全是:
扩展内部模型会显示一些数据,但也会说“空对象”对我来说似乎有点不对劲!
编辑:如果它有帮助我有一个控制器功能,它获得model.myData
并对其进行操作,这给了我期望的结果:
getMax() {
let max = _.max(this.get('model.myData'),'aField').aField;
console.log(max); // logs 41 as I expect
return max;
}
答案 0 :(得分:0)
这是你在路线模型中做的事情吗?
model() {
return Ember.RSVP.hash({
myData: this.store.query('table-datum', parameters)
}).then(function(results) {
return results;
}).catch(function(error) {
throw error;
});
},
setupController(controller, model) {
this._super(...arguments);
Ember.set(controller, 'myData', model.myData);
}
然后在模板中我将访问myData。