Próbuję użyć dwóch modeli w jednym widoku, a szablon przy użyciu obu. Pracuję z Marionetką. Oto ja inicjalizacji zdania:Szablon dwa modele w jednym widoku - kręgosłup/marionetka
main_app_layout.header.show(new APP.Views.HeaderView({
model: oneModel,
model2 : twoModel}
));
tu jest mój widok:
APP.Views.HeaderView = Backbone.Marionette.ItemView.extend({
template : '#view_template',
className: 'container',
initialize: function() {
//This correctly logs the second model
console.log(this.options.model2);
}
});
A oto szablon:
<script id="view_template" type="text/template">
<p>{{twoModel_label}} {{oneModel_data}}</p>
<p>{{twoModel_label2}} {{oneModel_data2}}</p>
</script>
To czyni wszystko poprawnie, wykorzystując dane oneModel, ale nie renderuje drugiego, nawet jeśli loguje go poprawnie. Używam Moustache jako mojego języka szablonowego.
Czy ktoś może pomóc?
To jest wspaniałe - dzięki za odpowiedź na Derick! (Uwielbiam Marionetkę, nawiasem mówiąc!). Jednak ciągle otrzymuję błąd, że model2 jest niezdefiniowany (konkretnie, Can not call method "toJSON" nieokreślonego) - czy istnieje specyficzny sposób przekazania drugiego modelu w inny sposób niż mój oryginalny? – streetlight
Naprawiłem ten problem, zmieniając model2 na this.options.model2! Dzięki jeszcze raz! – streetlight
oops! right ... this.options.model2 :) –