编辑 2013-03-02
这似乎在 RC1 中得到解决
在之前的 Ember.js 版本中,控制器会保持分配给它们的状态,但这似乎是 Pre4 中的一个问题。
所以如果我有这个控制器
App.UsersController = Ember.ArrayController.extend({
content: ['mike', 'jen', 'sofia'],
_content_observer: (function(){
/* I'm called, but my author doesn't know why */
console.log('Content was altered! But why? And by whom?');
}).observes('content')
});
由于某些无法解释的原因,内容被覆盖。我不想使用 ember data,但似乎我被迫朝那个方向发展。
这个JS Fiddle举例说明了这个问题。
这是怎么回事?我该如何阻止它,或者这是否根深蒂固于余烬中的固执己见,以至于我需要接受它并顺其自然?
编辑
更进一步,即使您覆盖了钩子,似乎设置的任何内容model
都将设置为该值。content
setupController
例如:
UsersRoute = Ember.Route.extend({
model: function() {
/*I should never be called, but I am. How curious.*/
return ['This','Shouldnt','Be','Assigned'];
},
setupController: function() {
/* According to http://emberjs.com/guides/routing/specifying-a-routes-model/, I should prevent the model from being assigned to content, but I don't */
}
});
UsersController.content
遗嘱以价值结束['This','Shouldnt','Be','Assigned']
看到这个更新的小提琴