0

既然您可以将视图的 el 指定为其属性之一,为什么仍需要将其作为参数传递才能工作?

例如。

var DetailsView = Backbone.View.extend({    
   el: $(".details")
});

作为参数:

var DetailsView = new DetailsView({ el: $(".details") });
4

1 回答 1

2

它不需要指定。如果此时您已经有一个与选择器匹配的元素,则应该可以:

$('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,classNameattributes属性为视图创建一个新元素。

于 2013-09-28T10:44:19.377 回答