每当我保存数据(self.get('content')。pushObject(record);)并将记录推回到内容数组中时,observable不会被触发。我需要触发observable,以便内容数组再次排序。你可以向我解释为什么不解雇?
saveIdea.IndexController = Ember.ArrayController.extend({ appName: 'My First Example', todaysDayOfMonth: moment().format('DD'), todaysMonth: moment().format('MMMM'), body: '', taggy: '', content : Em.A(), sortContent : function() { var ideas = this.get('content').toArray(); ideas.sort(function(a, b) { if (moment(b.get('date')).isBefore(moment(a.get('date')))) { return -1 } else { return 1 } }); this.set('content',ideas) }, todaysIdeas: function(){ this.sortContent(); }.observes('content.[]'), actions: { save: function() { var self = this; var idea = this.store.createRecord('idea', { body: this.get('body'), tag: this.get('taggy') }); idea.save().then(function(record) { self.get('content').pushObject(record); }); } } });
答案 0 :(得分:0)
因为您无法使用数组。
这个mixin实现了Observer友好的类似数组的行为。它不是一个具体的实现,但它可以被其他希望看起来像数组的类使用。
http://emberjs.com/api/classes/Ember.Array.html
使用具体实现,e.x。 Ember.ArrayProxy