【发布时间】:2015-02-21 04:21:12
【问题描述】:
每当我保存数据 ( self.get('content').pushObject(record);) 并将记录推回内容数组时,observable 都不会被触发。我需要触发 observable,以便再次对内容数组进行排序。你能解释一下为什么它没有触发吗?
saveIdea.IndexController = Ember.ArrayController.extend({ appName: '我的第一个例子', todaysDayOfMonth: moment().format('DD'), todaysMonth: moment().format('MMMM'), 身体: '', 标记:'', 内容:Em.A(), 排序内容:函数() { var idea = this.get('content').toArray(); 想法.sort(函数(a,b){ if (moment(b.get('date')).isBefore(moment(a.get('date')))) { 返回 -1 } 别的 { 返回 1 } }); this.set('内容',想法) }, 今天的想法:函数(){ this.sortContent(); }.observes('content.[]'), 行动:{ 保存:函数(){ 变种自我=这个; var idea = this.store.createRecord('idea', { 正文:this.get('body'), 标签:this.get('taggy') }); idea.save().then(function(record) { self.get('content').pushObject(record); }); } } });【问题讨论】:
-
这里我只使用插入排序,它比每次都使用内容要便宜。
-
这看起来也像死循环,是不是报错了?
-
并且 Em.A() 返回一个指向集合的指针,该集合将存在于类中,因此它将在该集合的所有实例之间共享.. 至少在最初
-
而且您不应该真正使用“已弃用”的
content,您应该始终使用模型。 emberjs.jsbin.com/bafoqodoyu/1/edit?html,js,output
标签: ember.js