1

現在、CollectionView を持つ ContainerView を使用していますが、CollectionView の ItemView に別のビューを追加したいと考えています。ItemView を ContainerView に変更し、新しいビューを追加しましたが、親の Collection -> Container から子の View にコンテンツをバインドするのに問題があります。

値を渡すことはできますが、何らかの理由でバインドが単に barf になります。

コード:

App.MainView = Ember.ContainerView.extend({
    header: Ember.View.create({
        templateName: "headerView"
    }),

    list: Ember.CollectionView.extend({
        contentBinding: "parentView.content",
        itemViewClass: "App.childContainer",
        tagName: "table"
    }),

    footer: Ember.View.create({
        templateName: "footerView"
    })
});

App.childContainer= Ember.ContainerView.extend({
    templateName: "childContainer",
    didInsertElement: function() {
        //NOTE:: THIS WORKS 
        var v = App.childContainerItem.create({"content":this.get('content')});
        //NOTE:: THIS DOESN'T WORK 
        var v = App.childContainerItem.create({"contentBinding":"this.content"});
        this.get('childViews').pushObject(v);    
    }
}); 

App.childContainerItem= Ember.View.extend({
    didInsertElement: function() {
        console.log(this.get('content').get('value'));    
    }   
});

私は得る:TypeError: this.get("content") is undefined

近くにいるような気がしますが、ばかげたことを見逃しているだけです。誰か額をノックしてくれませんか?

4

1 に答える 1

0

この行の didInsertElement 関数を追加することで、ビューの html コンテンツを取得できます。

App.childContainerItem= Ember.View.extend({
    didInsertElement: function() {
        console.log(this.get('content').get('value'));    
    }   
});
于 2013-03-22T10:09:23.483 に答える