Czytałem dokumentację najnowszej wersji (2.3.0) i mówi się, że obszary aplikacji są teraz przestarzałe.MarionetteJS: Regiony aplikacji a układy
Regiony aplikacyjne
Ostrzeżenie: przestarzałe Funkcja ta jest przestarzała. Zamiast korzystać z aplikacji jako katalogu głównego drzewa widoku, należy użyć widoku układu. Aby rozszerzyć widok układu na cały dokument, można ustawić jego el na "body". Może to wyglądać mniej więcej tak: var RootView = Marionette.LayoutView.extend ({el: 'body'});
W większości tutoriali, w tym Davida ŠULC książka Backbone Marionette: łagodne wprowadzenie go używa następującego fragmentu kodu, aby dodać regiony do aplikacji.
Zamiast poniższego przykładu poniżej, który używa addRegions, co mam robić zamiast tego?
tj
var ContactManager = new Marionette.Application({});
ContactManager.addRegions({
mainRegion: "#main-region"
});
var ContactView = Marionette.ItemView.extend({
template: "#whatever",
ui: {
button: ".button".
},
events: {
"click @ui.button": "click",
},
click: function() {
console.log("do stuff here...");
}
});
ContactManager.on("start", function() {
var contactView = new ContactView({
model: someModel
});
ContactManager.mainRegion.show(contactView);
});
Czy widok układu można wyrenderować przed wywołaniem aplikacji app.start() lub czy należy ją wywołać wewnątrz procedury obsługi onStart? – Abe
Renderowanie widoku układu jest synchroniczne, więc musisz się upewnić, że układ jest renderowany, zanim chcesz wyświetlić widoki w jego regionach. Poza tym możesz to zrobić, kiedy wolisz. Pamiętaj też, że możesz definiować regiony na podstawie elementów, które już znajdują się w DOM, jeśli chcesz utworzyć regiony, aby wyświetlać widoki w locie. – Trace
Właściwie, skąd wiadomo, że załączony renderowany widok jest dołączany do DOM? Załóżmy, że mam szablon z elementami #menu i #content, ale jak faktycznie załączam ten renderowany widok układu do html? – Abe