我想操纵我从store
对象(this.store.find('...')
等)获得的数据,比如限制(我不能只是向API发送限制)因为我现在只是使用灯具)或者反转结果。
为了限制我已经尝试实施limit
帮助并在each
块(#each (limit recentItems 5) ...
)中调用它;
import Ember from 'ember';
export default Ember.Helper.helper(function(params) {
return params[0].slice(0, params[1]);
});
我不确切知道它为什么不起作用,但似乎结果对象不是数组,因此我无法对其进行切片。恢复原状也是如此。
感谢。
答案 0 :(得分:0)
操纵模型正是路线上afterModel
方法的用途。
它已通过您已解决的模型(因此您不必担心承诺),您可以根据自己的心思对其进行修改。
App.PostsRoute = Ember.Route.extend({
afterModel: function(model, transition) {
// Modify the model here
}
});
编辑: 在评论中讨论后的其他建议......
如果你想获取一个额外的模型(在模型钩子之外)并且可以在控制器上访问它,那么你可以在路由的setupController钩子中获取它,并在控制器上设置它之前在那里修改它。
setupController: function(controller, model) {
// Default functionality
this._super(controller, model);
// Create items ArrayProxy and set it on the controller
var arr = Ember.ArrayProxy.create({});
controller.set('recentItems', arr);
// Fetch additional model
this.store.find('items').then(function(items) {
// Promise has resolved by this point
var i = 0;
// Iterate over first 5 returned items
while (i < 5) {
// Add each item to recentItems property on controller
controller.get('recentItems').addObject(items[i]);
}
});
}