Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干嵌套视图找不到id选择器_Javascript_Jquery_Backbone.js - Fatal编程技术网

Javascript 主干嵌套视图找不到id选择器

Javascript 主干嵌套视图找不到id选择器,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,在下面的代码中,我使用元素控制器模式来呈现产品集合。主视图模板呈现正确,我可以看到所有元素和div选择器“#cart wrapper”。显然,当主视图调用带有“addOne”的嵌套视图时,无法找到上述选择器: directory.CartView = Backbone.View.extend({ initialize: function(options) { this.collection = directory.shellView.cartcollection;

在下面的代码中,我使用元素控制器模式来呈现产品集合。主视图模板呈现正确,我可以看到所有元素和div选择器“#cart wrapper”。显然,当主视图调用带有“addOne”的嵌套视图时,无法找到上述选择器:

directory.CartView = Backbone.View.extend({
    initialize: function(options) { 
        this.collection = directory.shellView.cartcollection;
    },

    render: function(){
        this.$el.html(this.template());
        this.addAll();
        return this;
    },

    addAll: function() { 
        this.collection.each(this.addOne, this);
    },

    addOne: function(model) {
        directory.cartItemView = new directory.CartItemView({model: model}); 
        directory.cartItemView.render();
        $("#cart-wrapper").append(directory.cartItemView.el);
    }
});
嵌套视图

directory.CartItemView = Backbone.View.extend({
    render: function(){
        this.$el.html(this.template(this.model.toJSON()));
        return this;
   }
});
在addOne函数中,$(“#购物车包装器”).length==0。 我做了console.log(directory.cartimeview.el)和下划线模板,对于表中呈现的所有模型似乎都没有问题

主视图的名称如下所示:

 directory.cartView = new directory.CartView();
 directory.cartView.render();   
 $("#content").html(directory.cartView.el);

这是因为您在将视图的根元素添加到页面之前调用了
$(“#购物车包装器”)
,而jQuery就是在这里查找它的。要修复它,只需调用
this.$(“#购物车包装器”)

这是因为在将视图的根元素添加到页面之前调用
$(“#购物车包装器”)
,而这正是
jQuery
查找它的地方。要修复它,只需调用
this.$(“#购物车包装器”)