Ember.js 路由模型钩子中的ember数据实时数组排序
在余烬路线的模型挂钩中,以下各项可以正常工作:Ember.js 路由模型钩子中的ember数据实时数组排序,ember.js,ember-data,Ember.js,Ember Data,在余烬路线的模型挂钩中,以下各项可以正常工作: model: function () { return this.modelFor('foo').get('bar'); } 在余烬数据的支持下,我可以在其他地方删除一些foo的酒吧,它将自动更新(live array) 现在,我希望对其进行排序(以及子路由中的用户,因此我必须在路由中进行排序,而不是在控制器中) 。。。只在第一次做这项工作,因为我正在失去更新 有没有一种方法可以在线写入自动更新排序?解决此问题的余烬方法是什么?您可以为您
model: function () {
return this.modelFor('foo').get('bar');
}
在余烬数据的支持下,我可以在其他地方删除一些foo的酒吧,它将自动更新(live array)
现在,我希望对其进行排序(以及子路由中的用户,因此我必须在路由中进行排序,而不是在控制器中)
。。。只在第一次做这项工作,因为我正在失去更新
有没有一种方法可以在线写入自动更新排序?解决此问题的余烬方法是什么?您可以为您的模型创建一个余烬对象,该对象具有作为排序数据的计算属性
model: function () {
return this.modelFor('foo').get('bar')
.then(function (data) {
return Ember.Object.extend({
arrangedData: Ember.computed.sort('model', 'props'),
props: ['baz:asc']
}).create({ model: data });
});
},
Ember.Object.extend零件可能应该提取到某个位置,以便在其他管线中重用。您可以为模型创建一个Ember对象,该对象具有作为排序数据的计算属性
model: function () {
return this.modelFor('foo').get('bar')
.then(function (data) {
return Ember.Object.extend({
arrangedData: Ember.computed.sort('model', 'props'),
props: ['baz:asc']
}).create({ model: data });
});
},
Ember.Object.extend部分可能应该提取到某个地方,以便在其他路径中重复使用。根据Gaurav的答案回答我自己的问题:
model: function () {
return this.modelFor('foo').get('bar')
.then(function (data) {
return Ember.ArrayProxy.extend({
arrangedContent: Ember.computed.sort('content', 'props'),
props: ['baz:asc']
}).create({
content: data});
});
},
根据Gaurav的回答,回答我自己的问题:
model: function () {
return this.modelFor('foo').get('bar')
.then(function (data) {
return Ember.ArrayProxy.extend({
arrangedContent: Ember.computed.sort('content', 'props'),
props: ['baz:asc']
}).create({
content: data});
});
},
谢谢,这让我想到了正确的方向。道具必须是阵列才能工作。此外,我还需要在模板中编写
{{model.arrangedData.baz}
。我已经使用ArrayProxy扩展了这一点,并添加了我自己的答案。谢谢,这让我朝着正确的方向思考。道具必须是阵列才能工作。此外,我还需要在模板中编写{{model.arrangedData.baz}
。我通过使用ArrayProxy扩展了这一点,并添加了我自己的答案。谢谢,在这里工作。有没有较短的方法?似乎有很多余烬的样板。我希望类似于this.store.find('post').sortBy(['baz:asc'])
的东西find
返回一个承诺,所以您必须使用等待它。然后(…)
。现在,您已经非常接近我的问题中显示的代码,它只在第一次使用时才起作用。我不知道是否有人会用sortBy
替换返回一个活动数组。显然,你可以自己实现。到目前为止,我只在两个地方需要这个构造,所以我没有那样做。谢谢,在这里工作。有没有较短的方法?似乎有很多余烬的样板。我希望类似于this.store.find('post').sortBy(['baz:asc'])
的东西find
返回一个承诺,所以您必须使用等待它。然后(…)
。现在,您已经非常接近我的问题中显示的代码,它只在第一次使用时才起作用。我不知道是否有人会用sortBy
替换返回一个活动数组。显然,你可以自己实现。到目前为止,我只在两个地方需要这个构造,所以我没有这样做。