2013-08-22 9 views
5

La nostra applicazione utilizza i modelli di baffi nell'indice.mustache e fa la chiamata iniziale API con Symfony invece di usare Backbone. Questo è così l'utente non fisserà una schermata vuota sul caricamento iniziale della pagina.Come associare Marionette.ItemView all'elemento di pagina esistente, invece di passare in un modello?

Ora come possiamo utilizzare Marionette in seguito per associare gli elementi di pagina visualizzati nel DOM (in modo da poter manipolare i dati e aggiungere l'interattività), invece di passare un nuovo modello?

Per quanto la nostra ricerca suggerisce, dobbiamo sempre passare un modello a Marionette Layout e ItemView, oppure otteniamo un 'errore di modello'.

Esiste una proprietà el che possiamo utilizzare, proprio come in Backbone? L'altra opzione sarebbe quella di estendere Marionette.View, ma non è consigliabile farlo.

risposta

7

Devi solo istanziare la vista, senza rendering. http://jsfiddle.net/vpetrychuk/PkNTp/

var ItemView = Backbone.Marionette.ItemView.extend({ 
    el : '.content', 
    events : { 
     'click' : 'clickHandler' 
    }, 
    clickHandler : function() { 
     this.$el.append('clickHandler'); 
    } 
}); 

new ItemView(); 
+0

ho idea che cosa stavo facendo male. Ora funziona ... Strano. Grazie Vitaliy! –

+6

Suggerirei una piccola modifica: non inserire hardcode 'el' nella vista stessa. Ciò causerà mal di testa più tardi. Invece, passa 'el' in alle opzioni del costruttore:' new ItemView ({el: ".content"}); ' –

+0

@DerickBailey Grazie per il consiglio, sì, questo è sicuramente più riutilizzabile. Grande fan di Marionette Btw! :) –

Problemi correlati