既然您可以将视图的 el 指定为其属性之一,为什么仍需要将其作为参数传递才能工作?
例如。
var DetailsView = Backbone.View.extend({
el: $(".details")
});
作为参数:
var DetailsView = new DetailsView({ el: $(".details") });
既然您可以将视图的 el 指定为其属性之一,为什么仍需要将其作为参数传递才能工作?
例如。
var DetailsView = Backbone.View.extend({
el: $(".details")
});
作为参数:
var DetailsView = new DetailsView({ el: $(".details") });
它不需要指定。如果此时您已经有一个与选择器匹配的元素,则应该可以:
$('body').append($("<div class='details'></div>"));
var DetailsView = Backbone.View.extend({
el: $(".details")
});
console.log(new DetailsView().el.className); // details
我怀疑当您定义视图时您的元素不在 DOM 中。
它的工作原理Backbone.View
是检查您是否指定el
为属性,如果没有,它检查是否el
在原型中指定,如果没有,它使用原型上的tagName
,className
和attributes
属性为视图创建一个新元素。