Mam aplikację KO i każda z moich stron ma osobny model widoku, który obsługuje wszystkie czynności wymagane na tej stronie (ładowanie, dodawanie, edytowanie, usuwanie itd.). Udało mi się podzielić kod na wiele modułów przy użyciu RequireJS, ale nie mogę znaleźć sposobu, aby wiele modeli widoku działało jednocześnie za pomocą Sammy.Knockout, Require, Sammy i model widoku dla każdej strony - jak mogę to zrobić?
To jest konfiguracja, którą mam w pliku init.js
, która ładuje zawartość na pierwszej stronie. Działa:
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');
});
Jak powiązać inne modele widoku z innymi stronami?
Próbowałem także dodać oddzielną ko.applyBindings
dla każdej strony w środku this.get
, która spowodowała błąd po przełączeniu z powrotem na stronę, która już zastosowała te wiązania.
Być może zainteresuje Cię Durandal, który jest ramą, która w zasadzie łączy wszystkie te rzeczy razem dla ciebie. – Tyrsius