【发布时间】:2016-07-07 13:19:20
【问题描述】:
我有一个路由,它通过 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;
}
【问题讨论】:
-
如果您记录结果,您会在控制台中得到什么?
{{ log result }} -
我得到了一个内部带有值的 Ember 类,但它也奇怪地在一些地方说“空对象”,将用图像更新问题
-
myData: this.store.query('table-datum', parameters)无效,那是您的真实代码吗?非常不鼓励在属性/计算属性中返回承诺,您是否有机会将查询移至路由? -
这是我的真实代码,其中参数是我想传递到终点的查询字符串参数的对象。它生成一个返回有效 JSON 的有效 HTTP 请求。我是 99.99% 这不是问题。
-
您的代码看起来不错...我能看到的唯一原因是您可能没有正确访问属性。如何使用
result.LUF或result.luf访问组件中的属性?