Ho un'app KO e ognuna delle mie pagine ha un modello di vista separato che gestisce tutte le azioni richieste su quella pagina (caricamento, aggiunta, modifica, eliminazione, ecc.). Sono riuscito a suddividere il codice in più moduli utilizzando RequireJS, ma non riesco a trovare un modo per far funzionare contemporaneamente più modelli di visualizzazione utilizzando Sammy.Knockout, Require, Sammy e un modello di visualizzazione per ogni pagina: come faccio a farlo funzionare?
Questa è la configurazione che ho nel mio file init.js
al momento, che carica il contenuto sulla prima pagina. E funziona:
require(['jquery', 'ko', 'sammy', 'viewmodels/page1'], function($, ko, sammy, page1) {
var page1VM = new page1.ViewModel();
ko.applyBindings(page1VM);
var app = sammy('#wrapper', function() {
this.get('#page1', function() {
page1VM.loadContent();
});
this.get('#page2', function() {
// do nothing yet
});
[...]
this.get('#pageX', function() {
// do nothing yet
});
});
app.run('#page1');
});
Come posso associare i miei altri modelli di vista alle altre pagine?
Ho anche provato ad aggiungere uno ko.applyBindings
separato per ogni pagina all'interno di this.get
, che ha generato un errore quando sono tornato a una pagina che aveva già applicato tali associazioni.
Potreste essere interessati a Durandal, che è un framework che fondamentalmente riunisce tutte queste cose insieme per voi. – Tyrsius