javascript - libreria - underscore empty object
BackboneJs: En una vista cuál es la diferencia entre el: y tagName: (2)
La diferencia es esta:
El debe usarse para conservar una referencia al nodo DOM real que representa la vista como un todo.
Esto significa que puede realizar acciones en él fácilmente con jQuery o w / e. $ (this.el) .hide () o $ (this.el) .html (''Soy un objeto Jquery ahora'');
TagName es solo una cadena que se usa para determinar el tipo de DOM que será el nodo. 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 con el que podría encontrarse es que, a veces, configura el en la instanciación de una vista, en cuyo caso el nombre de etiqueta es irrelevante:
var myView = new view({ el: $("someExistingEl") });
Estoy tratando de envolver mi cabeza alrededor de este concepto.
¿Puede hacer esto para mí y quizás proporcionar un ejemplo simple de la diferencia entre el:
atributo el:
y el nombre de tagName:
:?
En algunos ejemplos, diferentes vistas usan el:
veces y otras usan tagName:
Estoy específicamente jugando con mi propia implementación de este example
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();
Creo que debería funcionar bien.