gpt4 book ai didi

jquery - 使用backbone.js 清理 View ?

转载 作者:行者123 更新时间:2023-12-03 22:58:53 25 4
gpt4 key购买 nike

我正在开发一个backbone.js应用程序,并且已经达到了这样的程度:我有许多路由器和 View 来代表我的应用程序的每个部分。在下面的简化路由器示例中,我有两个位置; 帐户用户

每个位置中的两个 View 都将其内容渲染到名为 #appcontainer 的共同元素。我的常识告诉我,我应该确保 remove每个 View 都在启动另一个 View 之前,以防止绑定(bind)、DOM 等发生冲突。

但是由于我无法确定是否已创建 View ,因此我无法从路由器或 View 内部显式调用 previousView.remove()

$(this.el).empty() 添加到每个 View 的构造函数中以清除 DOM 中任何最终的先前绑定(bind)和元素是否足够?

这是路由器示例?

var myRouter = Backbone.Router.extend({

routes: {
"account": "account",
"users": "users"
},

account: function() {
view = new AccountView({});
view.render();
},

users: function() {
view = new UserView({});
view.render();
}

});

最佳答案

我有一个非常简单的实现,我现在刚刚启动我的应用程序,不知道从长远来看这将如何持续,但它看起来像这样:

编辑:整个文件如下所示。 this.render 将是 myRouter 的另一个函数。

var myRouter = Backbone.Router.extend({
routes: {
'path/to/account' : 'account',
'path/to/users': 'users'
}

account: function() {
view = new AccountView({});
this.render(view);
},

users: function() {
view = new UserView({});
this.render(view);
},

render: function (view) {
//Close the current view
if (this.currentView) {
this.currentView.remove();
}

//render the new view
view.render();

//Set the current view
this.currentView = view;

return this;
}
});

关于jquery - 使用backbone.js 清理 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9079491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com