我对ember完全不熟悉,经过大量的搜索后,我无法弄清楚如何使用Ember.computed属性制作可重用的代码。 这是一个例子:我有两个控制器,它们有相似的代码部分用于排序数组(它们接收不同的模型)
export default Ember.Controller.extend({
sortProps: ['createdAt:desc'],
sortedPosts: Ember.computed.sort('model', 'sortProps'),
last3SortedPosts: Ember.computed('sortedPosts', function() {
return this.get('sortedPosts').slice(0,3);
}),
...
我希望不要写两次。有没有办法做到这一点?
答案 0 :(得分:1)
在 mixins / sorted-posts.js
中export default Ember.Mixin.extend({
sortProps: ['createdAt:desc'],
sortedPosts: Ember.computed.sort('model', 'sortProps'),
last3SortedPosts: Ember.computed('sortedPosts', function() {
return this.get('sortedPosts').slice(0,3);
})
});
在您的控制器中:
import SortedPostsMixin from '../mixins/sorted-posts';
export default Ember.Controller.extend(SortedPostsMixin, {
/* .. */
});