Marionette.js无法在'Node'上执行'appendChild':参数1不是'Node'类型

时间:2015-06-30 17:41:59

标签: node.js backbone.js marionette

这是我的LayoutView:

define(["marionette", "lodash", "text!fonts/template.html",
"fonts/controls/view", "fonts/products/view"],
function(Marionette, _, templateHTML, ControlsView, ProductsView) {
    'use strict';

    var FontsView = Marionette.LayoutView.extend({

        regions: {
            controls: '#controls',
            products: '#products-list'
        },

        template: _.template(templateHTML),

        onRender: function() {
            this.getRegion('controls').show(new ControlsView());
            this.getRegion('products').show(new ProductsView());
        }
    });

    return FontsView;

});

这是我的产品视图:

define(["marionette", "lodash", "text!fonts/products/template.html",
'fonts/products/item-view', 'fonts/products/collection'],
function(Marionette, _, templateHTML, ProductItemView, ProductsCollection) {
    'use strict';

    var ProductsView = Marionette.CompositeView.extend({
        el: '.items',

        template: _.template(templateHTML),

        childView: ProductItemView,

        initialize: function() {
            this.collection = new ProductsCollection();
        }
    });

    return ProductsView;
});

错误(来自控制台)正在this.getRegion('products').show(new ProductsView());

上发生

1 个答案:

答案 0 :(得分:4)

从ProductsView中删除el: '.items',,它会起作用。 Marionette已经在管理该地区,并且在儿童视图中指定el时会感到困惑。