1

我目前正在使用一个 ContainerView,它有一个 CollectionView,但想在 CollectionView 的 ItemView 中有另一个 View。我已将 ItemView 更改为 ContainerView,并附加了新的 View,但我无法将父 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 回答