如何将子视图生命周期职责移至Marionette

时间:2015-05-05 12:40:35

标签: javascript backbone.js marionette

问题 如何将子视图的生命周期责任从<beans> <import resource="classpath*:root-module-context.xml"/> <bean>.. </bean> </beans> 移至MyView? (见下面的代码)

这里的问题是Marionette数组是在服务器上动态形成的,我不想在items中迭代它们。我需要MyView吗?

代码:

我有Marionette.CollectionView模板:

my-view.hbs

查看呈现它的内容:

{{#each items}}
  <button class="button">name</button>
  <div name="target"/>  <!-- each target div should contain a subview -->
{{/each}}

1 个答案:

答案 0 :(得分:2)

如果简短,是的,您需要复合收藏查看。 另外我建议您使用Collection而不是普通对象,它将帮助您更轻松地在数据(模型)和您查看之间进行通信:

var ItemModel = Backbone.Model.extend({
        defaults: {
            name: 'unnamed'
        }
    }), 
    ItemsCollection = Backbone.Collection.extend({
        model: ItemModel
    }),

    MyChildView = Marionette.ItemView.extend({
        template: Templates['my-view.hbs']
    }),
    MyView = Marionette.CollectionView.extend({
        childView: MyChildView,
        collection: new ItemsCollection([
            {name: 'car'},
            {name: 'bike'},
            {name: 'skiboard'}
        ])
    });

您的模板也会更容易:

<button class="button">name</button>
<div name="target"/>