我想在Marionette CollectionView中動態地操作itemViews。這些集合具有相同的模型,但我在模型中定義了templateName參數。有沒有辦法用RequireJS動態地改變Marionette ItemView模板?
問題是,我可以通過這個參數操作ItemView模板嗎?
ItemView控件:
define(['text!templates/ComponentItemViewTemplate.html','models/ComponentModel'], function (template, model) {
var ItemView = Backbone.Marionette.ItemView.extend({
template: _.template(template),
model: model
});
return ItemView;
});
的CollectionView:
define(['views/ComponentItemView', 'views/LoadingView'], function(ItemView, LoadingView) {
var ComponentListView = Backbone.Marionette.CollectionView.extend({
emptyView : LoadingView,
id: "component-list",
itemView: ItemView,
events: {
'click .title span' : 'show'
},
appendHtml: function(collectionView, itemView, index){//i would like to render different templates, for different models.
itemView.$el.draggable({ helper: "clone", cancel: ".component .title span", connectToSortable: ".ui-sortable" });
collectionView.$el.append(itemView.el);
},
show: function(r) {
var target = $(r.target);
if(target.parent().hasClass('open')){
target.parent().removeClass('open');
target.parent().next().slideDown('fast');
}else{
target.parent().addClass('open');
target.parent().next().slideUp('fast');
}
}
});
return ComponentListView;
});
謝謝!
我會用'getTemplate'函數在ItemView中分配模板名稱。 https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.view.md#change-which-template-is-rendered-for-a-view – 2013-03-20 23:38:20
有沒有辦法,呈現requirejs加載模板後的itemview?在模板被要求之前,我會得到你的溶劑,並得到notemplate錯誤。 (模板){返回_模板(模板);}函數(模板){} );}' – 2013-03-21 09:47:12