gpt4 book ai didi

javascript - 主干嵌套 View 无法找到 id 选择器

转载 作者:行者123 更新时间:2023-11-28 01:58:00 25 4
gpt4 key购买 nike

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

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);
}
});

嵌套 View

directory.CartItemView = Backbone.View.extend({
render: function(){
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});

在 addOne 函数中 $("#cart-wrapper").length==0 。我做了 console.log(directory.cartItemView.el) 并且下划线模板对于表内呈现的所有模型似乎都可以。

主视图的调用方式如下:

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

最佳答案

这是因为您在将 View 的根元素添加到页面之前调用 $("#cart-wrapper") ,而这就是 jQuery 正在寻找的位置它。要修复它,只需调用 this.$("#cart-wrapper") 即可。

关于javascript - 主干嵌套 View 无法找到 id 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18811578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com