Pri vykresľovaní pohľadu na chrbticu sa snažím vyhnúť zabaleniu s prázdnym div. Robím to s nasledujúcim kódom
this.$el.replaceWith(this.template(this.model.attributes));
return this;
ale keď pripojím tento pohľad k, dostanem prázdny div
$("#product-pannel").append(productsView.render().el);
niekto dajte takéto riešenie
render: function(){
var html = this.template(this.model.toJSON()));
var newElement = $(html)
this.$el.replaceWith(newElement);
this.setElement(newElement);
return this;
}
ale nerozumiem, prečo by som to mal robiť tak komplikovane vyššie môže mi niekto povedať záhadu el
e $el
?
odpovede:
2 pre odpoveď č. 1el
ukazuje na prvok zobrazenia (ten, ktorý obsahuje zvyšok šablóny) a $el
je reprezentácia objektu jQuery el
element Aby ste nemuseli robiť $(this.el)
celý čas.
Toto je jasne uvedené v dokumentácii.
Existujúci prvok DOM môžete určiť ako prvok zobrazenia pomocou el
možnosť alebo chrbtová kosť vytvorí pre každý pohľad prvok DOM. Predvolene to bude a <div>
. Ak nechceš prázdny <div>
, prispôsobte prvok, ktorý vytvára chrbtica, ako prvok najvyššej úrovne vašej šablóny zobrazenia pomocou možností ako tagName
, attributes
atď.
setElement
je na dynamickú zmenu prvku zobrazenia na niečo iné ... Ja som zriedka (alebo nikdy) videl, že sa skutočne používa.