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