【问题标题】:backbone and marionette, ItemView not rendering, how to?骨干和木偶,ItemView不渲染,怎么办?
【发布时间】:2015-01-07 11:29:09
【问题描述】:

由于某种原因,ItemView 没有呈现。这是我的设置:

控制器

test: function () {
            require(['application', 'collections/collection-test', 'views/collection/view-test'], function (App, CollectionTest, ViewTest) {
                var collectionTest = new CollectionTest();

                App.regionTest.show(new ViewTest({
                    collection: collectionTest
                }));
            });
        },

集合视图

define(['backbone','views/item/itemview-test'],
function (Backbone, ItemviewTest) {
    'use strict';
    return Backbone.Marionette.CollectionView.extend({
        tagName: 'ul',
        initialize: function () {},
        itemView: ItemviewTest,
        ui: {},
        events: {},
        /* on render callback */
        onRender: function () {
            console.log(this.$el);
        }
    });
});

项目视图

define(['backbone','hbs!tmpl/item/itemview-test_tmpl'],
function (Backbone, ItemviewTestTmpl) {
    'use strict';
    return Backbone.Marionette.ItemView.extend({
        tagName: 'li',
        initialize: function (options) {},
        template: ItemviewTestTmpl,
        ui: {},
        events: {},
        onRender: function () {
            console.log(this.$el);
        },
    });
});

我可以看到 <ul></ul> 被添加到该区域,但不是 li

如果我用'views/item/itemview-test' int eh 控制器替换'views/collection/view-test',我可以渲染li,但现在我不会得到ul

另外,如果我在集合中 console.log(new ItemviewTest()),我可以看到带有 $el:'li' 标记的 ItemView 对象,但由于某种原因它没有被添加到 html 中

有什么想法吗?

【问题讨论】:

    标签: javascript templates backbone.js views marionette


    【解决方案1】:

    为父 CollectionView 集合中的每个模型渲染一个 ItemView。由于该集合为空,因此没有要渲染的模型。

    尝试添加模型:

    var collectionTest = new CollectionTest([{ name: 'Patrioticcow' }]);
    
    App.regionTest.show(new ViewTest({
      collection: collectionTest
    }));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多