Właśnie zdałem sobie sprawę, że nie rozumiem atrybutu el
z Backbone.View
. Zasadniczo moje widoki wymagają atrybutów dynamicznych id
na podstawie atrybutu tego modelu. Myślałam, że to działa dobrze, bo po prostu określone w moim szablonu:Widok kręgosłupa z dynamicznym id
<script type="text/template" id="item_template">
<li class="item" id="{{identifier}}">
<span class="name">{{name}}</span>
</li>
</script>
jednak zdałem sobie sprawę, że to, co zostało faktycznie robi Backbone było wprowadzenie tego skompilowany szablon do innego elementu, div
domyślnie. Dowiedziałem się więcej na ten temat, czytając dokumentację, ale wciąż nie mam pojęcia, jak utworzyć dynamiczny model id
.
Najlepiej byłoby, gdybym znalazł sposób, aby to, co jest w powyższym szablonie, służyło jako mój el
, ponieważ ma już wszystko, czego chcę, ale nie wiem, czy to możliwe. Zastanawiam się, czy po prostu istnieje sposób na określenie atrybutu dynamicznego id
.
Próbowałem ustawić go w metodzie initialize
, this.id = this.model.get('attr')
, ale nie wydaje się, aby miało to jakiś wpływ, prawdopodobnie dlatego, że do tego czasu jest już za późno.
Co mam aktualnie robi się tylko przy użyciu jQuery aby dodać id
w trakcie render()
:
this.el.attr(id: this.model.get('identifier'));
to działa, ale oczywiście, ja po prostu pytając, czy jest najlepszym sposobem, aby to zrobić przez Szkielet.
Jeszcze raz dziękuję maxl0rd (pomógł mi w drugim pytaniu: D). Wydaje się, że to powinno działać: D Spróbuję i wrócę, aby oznaczyć jako poprawne :) –
dla tych, którzy nie wiedzą, tagName domyślnie div, jeśli nie jest określony. Będę widział dużą liczbę szablonów, które mają kontener [formularz, div, etc ...z identyfikatorem] i to naprawdę powinno być częścią widoku, a nie szablonem. jak pokazano w odpowiedzi maxl0rd – PDA