我正在试着去理解这个概念。
您能为我简化一下吗?也许可以提供一个简单的示例来说明el:
属性和tagName:
属性之间的区别?
在一些示例中,不同的视图有时使用el:
,而其他视图使用tagName:
。
我专门对我自己的example实现进行了修改。
发布于 2011-09-15 22:43:21
区别在于:
el应该用来保留对表示整个视图的实际DOM节点的引用。
这意味着你可以很容易地使用jQuery或者w/e对它执行操作。$(this.el).hide()或者$(this.el).html(‘我现在是一个Jquery对象’);
TagName只是一个字符串,用于确定DOM节点el的类型。缺省值是div,但如果您愿意,您可以将其设置为任何HTML元素。
考虑一下:
var view = Backbone.View.extend({
tagName: 'p',
initialize: function () {
_.bindAll(this, 'render');
},
render: function() {
$(this.el).html('I am a jQuery-ized paragraph');
return this;
}
});
$(document.body).append(new view().render().el);
您可能会遇到的问题是,有时在实例化视图时设置el,在这种情况下,tagName是无关紧要的:
var myView = new view({ el: $("someExistingEl") });
发布于 2013-05-24 06:19:50
var View = Backbone.View.extend({
tagName: 'span',
id: 'identity',
class: 'classy',
el: $(this.tagName), // or
el: $('<' + this.tagName + ' />', {
id: this.id, // identity
'class': this.class // classy
}) // this is jQuery shorthand for building an element fyi
});
var view = new View();
我认为这应该很好用。
https://stackoverflow.com/questions/7432560
复制相似问题