使用Marionette.ItemView的看法,并没有模式?(Using Marionette.I

2019-08-03 10:58发布

它是常规使用Marionette.ItemView对于不具有特定视图类model与之关联的属性?

Marionette.View并不意味着直接使用,它似乎是一个ItemView有意义的,因为与方便的默认值和绑定的视图类。

或者说,应该只是一个诉诸使用Backbone.View ? 如果是这样,是有办法钩Backbone.View到木偶的事件触发和垃圾收集的架构?

感谢您的澄清!

Answer 1:

ItemView控件可以在没有一个模型中使用。 我很经常这样做。

如果你需要一个ItemView控件指定数据,但没有在Backbone.Model的数据,你需要重写serializeData方法:


MyView = Marionette.ItemView.extend({
  serializeData: function(){
    return {
      my: "custom data"
    };
  }
});

基Marionette.View心不是”意味着要直接使用,因为它并没有提供它自己的渲染功能。 这并不意味着你不能用它来创建你自己的基本视图类型,虽然。 你可以,例如,建立你的应用程序与渲染谷歌地图或者第三方插件或别的东西,这并不需要一般Backbone.Model的渲染是ItemView控件中有一个视类型。



Answer 2:

我刚刚发现你可以使用一个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);

我有兴趣在此德里克您的想法?



文章来源: Using Marionette.ItemView for views without models?