Я работаю над backbone.js-приложением и дошел до того, что у меня есть несколько маршрутизаторов и представлений, представляющих каждую часть моего приложения.В приведенном ниже упрощенном примере маршрутизатора у меня есть два местоположения;account
& users
.
Оба представления в каждом местоположении отображают свое содержимое во взаимный элемент с именем #appcontainer
.Мой здравый смысл говорит, что я должен убедиться, что remove
каждый просмотр перед запуском другого, чтобы предотвратить столкновения в привязках, DOM и еще много чего.
Но так как я не могу точно знать, является ли представлениеуже был создан, я не могу явно вызвать previousView.remove()
изнутри моего маршрутизатора или представлений.
Было бы достаточно добавить $(this.el).empty()
в конструктор каждого представления, чтобы очистить любые возможные предыдущие привязки и элементыиз DOM?
Вот пример роутера?
var myRouter = Backbone.Router.extend({
routes: {
"account": "account",
"users": "users"
},
account: function() {
view = new AccountView({});
view.render();
},
users: function() {
view = new UserView({});
view.render();
}
});