它是常规使用Marionette.ItemView
对于不具有特定视图类model
与之关联的属性?
如Marionette.View
并不意味着直接使用,它似乎是一个ItemView
有意义的,因为与方便的默认值和绑定的视图类。
或者说,应该只是一个诉诸使用Backbone.View
? 如果是这样,是有办法钩Backbone.View
到木偶的事件触发和垃圾收集的架构?
感谢您的澄清!
它是常规使用Marionette.ItemView
对于不具有特定视图类model
与之关联的属性?
如Marionette.View
并不意味着直接使用,它似乎是一个ItemView
有意义的,因为与方便的默认值和绑定的视图类。
或者说,应该只是一个诉诸使用Backbone.View
? 如果是这样,是有办法钩Backbone.View
到木偶的事件触发和垃圾收集的架构?
感谢您的澄清!
ItemView控件可以在没有一个模型中使用。 我很经常这样做。
如果你需要一个ItemView控件指定数据,但没有在Backbone.Model的数据,你需要重写serializeData
方法:
MyView = Marionette.ItemView.extend({
serializeData: function(){
return {
my: "custom data"
};
}
});
基Marionette.View心不是”意味着要直接使用,因为它并没有提供它自己的渲染功能。 这并不意味着你不能用它来创建你自己的基本视图类型,虽然。 你可以,例如,建立你的应用程序与渲染谷歌地图或者第三方插件或别的东西,这并不需要一般Backbone.Model的渲染是ItemView控件中有一个视类型。
我刚刚发现你可以使用一个templateHelper此 - 只是夹头这在你的ItemView控件声明:
templateHelpers: function() {
return {
message: this.message,
cssClass: this.cssClass
}
}
然后在您的模板:
<script type="text/html" id="notice-template">
<span class="<%= cssClass %>"><%= message %></span>
</script>
然后当你初始化的观点:
var noticeView = new App.Views.Notice();
noticeView.message = "HELLO";
App.noticeRegion.show(noticeView);
我有兴趣在此德里克您的想法?