3

ここで、コントローラーのプロパティにアクセスしようとしていますが、例外がスローされています Uncaught TypeError: Object [object Object] has no method 'addArrayObserver'

テンプレートコード:

{{#each itemController="index"}}                    
    <div class="row" {{bindAttr class="item.isWithBorder:border"}}>
        {{#each item in model}}        
            {{#each item in item.home_products}}    
                {{#each item in item.contents}}    
                    <li>{{item.product_name}}</li>
                {{/each}}
            {{/each}}
        {{/each}}        
    </div>
{{/each}}

最初の繰り返し、つまり最初の製品に対してのみ境界プロパティを表示したい。したがって、テンプレートでアクセスしているコントローラーに1つのプロパティが追加されます。コントローラーコード:

Astcart.IndexController = Ember.ObjectController.extend({
    init: function() {
        console.log("Item controller initialized");
        this._super();

    },      
    isWithBorder : function(){          
    return this.get("model.id") == 1;
    }.property("model.id")    

}); 

コードを更新しましたHere

4

1 に答える 1

1

ここでjsfiddleが動作しています:http://jsfiddle.net/fQNRk/2/

あなたの名前を使用している場所indexitemController indexすでに予約されている名前なので、item今では機能するように変更しました。

Astcart.ItemController = Ember.ObjectController.extend({
  ...

{{#each itemController="item"}}
  ...

それが役に立てば幸い。

于 2013-09-03T10:08:41.960 に答える