La diferencia es la siguiente:
EL debe utilizarse para preservar una referencia al nodo DOM real que representa la vista en su conjunto.
Esto significa que puede realizar fácilmente acciones en él con jQuery o w/e. $ (this.el) .hide() o $ (this.el) .html ('Ahora soy un Objeto de Jquery');
TagName es solo una cadena que se usa para determinar el tipo de nodo DOM que el el será. El valor predeterminado es div, pero si lo desea, puede convertirlo en cualquier elemento HTML que desee.
considerar:
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 problema que pueda estar ejecutando en es que a veces se establece el de la creación de instancias de una vista, en cuyo caso el tagName es irrelevante:
var myView = new view({ el: $("someExistingEl") });
el hará referencia a los elementos existentes en nuestro DOM, mientras que tagName crearemos un nuevo elemento dom con el tagName con className si se proporciona. – STEEL