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}}

我只想为第一次迭代(即第一个产品)显示边框属性。因此,我在模板中访问的控制器中添加了一个属性。控制器代码:

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")    

}); 

在这里更新了我的代码。

4

1 回答 1

1

在这里工作的jsfiddle:http: //jsfiddle.net/fQNRk/2/

您使用名称index作为您的名称itemController index已经是保留名称,所以我只是将其更改为item现在可以使用。

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

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

希望能帮助到你。

于 2013-09-03T10:08:41.960 回答