gpt4 book ai didi

javascript - 主干模型更改和 View 渲染更新

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:52 26 4
gpt4 key购买 nike

我有一个在后端带有 session 的 Express 应用程序,在前端我有 Backbone+RequireJS。我的问题在于我拥有的 session 模型,以及触发 View 上渲染方法的更改事件。

所以:

  1. 该应用有一个主页 View ,该 View 具有 session 模型“更改”事件的监听器,并运行“渲染”方法。
  2. 没有凭据的用户从主页进入公共(public)页面,例如/about
  3. 在此处,用户从具有登录表单(用户/密码)的 header 登录。
  4. 由于第 1 项中的监听器,容器元素会使用新的主页内容进行更新,但用户仍位于/about。

所以,问题是:如何避免这种不良行为,以便 View 仅在正确的路线处于事件状态时监听事件?

代码示例:

"use strict";

var SessionModel = Backbone.Model.extend({});

var sessionModel = new SessionModel();

var HomeView = Backbone.View.extend({
initialize: function() {
this.listenTo(sessionModel, "change", this.render);
},
render: function() {
// updates the main container element
}
});

var AppRouter = Backbone.Router.extend({
"": "home",
"about": "about"
});

var appRouter = new AppRouter();

appRouter.on("route", function() {
sessionModel.fetch(); // Updates session model on every route change
});

appRouter.on("route:home", function() {
var homeView = new HomeView();
homeView.render();
});

最佳答案

您可以监听特定属性,而不是监听每种更改。

this.bind("change:SomeExpecificThing", doEspecificThing)

关于javascript - 主干模型更改和 View 渲染更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984083/

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