在我的应用程序中,我有一个项目提要。让我们说这两项是任务和购买。
在我的Feed中,我希望这两个项目都填充按日期排序的数组。它们都具有类似的属性,例如标题和日期。至于在UI上显示它们,我毫不怀疑我能够解决这个问题。
问题在于获取记录。
store.find('task');
store.find('purchase');
这两个都返回promise数组。我假设我需要某种数组代理。但是,每当在这些数组中的任何一个对象上修改属性时,我的当前代码都不会更新数组。当对象被添加到这些商店时,它也无法正确呈现或更改。
有没有人有幸将两个记录数组合并为一个?并且让它的功能就好像它只是一个记录数组,它可以完美地随着数组和对象内的每个对象进行更新。
任何帮助表示赞赏!如果需要更多代码,我会发布!
UPDATE ::
附件是一个JSBIN,它应该显示我想要做的事情,以及它无法正常工作的事实。
http://emberjs.jsbin.com/jebugofo/2/edit?html,js,console,output
答案 0 :(得分:7)
这是您的fiddle modified。
我是新的ember数据。但据我所知,你正在合并2个对象。我修改了在合并之前将模型对象转换为数组。
var stream = Ember.A();
stream.pushObjects(txn.toArray());
stream.pushObjects(job.toArray());
return stream;
我还修改了你观察的属性。现在我观察模型数据。
}.property('model.purchases.@each', 'model.tasks.@each'),
答案 1 :(得分:0)
如果您询问如何在一个模型中检索任务和购买 - 您可以执行以下操作:
App.YourRoute = Em.Route.extend({
model: function(params) {
return Em.RSVP.hash({
tasks: this.store.find('task'),
purchases: this.store.find('purchase')
});
},
然后在你的模板中你可以做到
<script type="text/x-handlebars" data-template-name="index">
<h2>Tasks:</h2>
<ul>
{{#each tasks}}
<li>{{title}}</li>
{{/each}}
</ul>
<h2>Purchases:</h2>
<ul>
{{#each purchases}}
<li>{{title}}</li>
{{/each}}
</ul>
</script>