我有以下ItemView
模板,其中填充了客戶數據(firstName,lastName),並且我想將CollectionView
添加到div .addresses
中。Marionette.js ItemView - 將子視圖放入區域
模板
<script type="text/html" id="template-customer-details">
<h4><%= firstName %> <%= lastName %></h4>
<button class="edit">Edit</button>
<h5>Addresses</h5>
<div class="addresses">...</div>
</script>
佈局
Layout.Details = Backbone.Marionette.ItemView.extend({
template: '#template-customer-details',
regions: {
addresses: ".addresses"
},
serializeData: function() {
return this.model.attributes;
},
initialize: function() {
this.addressList = new App.Models.AddressList();
// Error!
this.regions.addresses.show(this.addressList);
this.bindTo(this, "render", this.$el.refresh, this.$el);
this.model.bind("change", this.render.bind(this));
}
});
我收到錯誤 「遺漏的類型錯誤:對象.addresses有沒有方法 '秀'。」
我是否必須等待視圖加載?
這看起來不錯:)如果我想顯示,我也可以使用CompositeView低於客戶數據的兩個集合(一個用於地址,另一個用於聯繫人),還是應該使用佈局? – Dennis
@Dennis - 在Layout上使用 –
對於當前版本是3.0,CompsoiteView中的itemView和itemViewContainer應該是childView和childViewContainer。將'item'重命名爲'child'。 http://marionettejs.com/docs/v2.4.7/marionette.compositeview.html#compositeviews-childview –