ember.js嵌入内容的奇怪行为

ember.js嵌入内容的奇怪行为

问题描述:

我有一个奇怪的错误,导致我挠我的头。ember.js嵌入内容的奇怪行为

我有一个Ember.State其中I每次进入它时新了的控制器:

show: Ember.State.extend({ 
    enter: function(manager, transition) { 
     this._super(manager, transition); 

     var contact = App.store.find(App.Contact, App.appController.get('params')); 

     App.set('selectedContactController', App.SelectedContactController.create({})); 

     //TODO: Why do I have to do this when I have just called create? 
     if(App.getPath('selectedContactController.content') && App.getPath('selectedContactController.content.length') > 0){ 
     App.setPath('selectedContactController.content', Ember.A()); 
     } 

在代码的另一部分,我设置控制器的内容,以对从数据加载的阵列商店。

我在上面写了一条评论,我正在写这个问题。即使我打电话创建,我也必须清除内容集合。这让我感到困惑。

的SelectedContactController看起来是这样的:

App.SelectedContactController = Ember.ArrayProxy.extend(App.FeedScroller, { 

内容属性来自App.FeedScroller混入看起来像这样:

App.FeedScroller = Ember.Mixin.create(Ember.Evented, { 
    content: Ember.A(), 

有谁知道为什么内容属性不被摧毁何时创建({})?

当你这样做:

App.SelectedContactController.create({})

你还在继承的默认属性,其中一些来自于原型链中的混入。

如果你不想在你创建实例的默认属性,你必须明确他们通过为

App.SelectedContactController.create({内容:空})

看看这个的jsfiddle:http://jsfiddle.net/lifeinafolder/ag2Nb/

希望这有助于。