【问题标题】:Backbone js Routes / Views relationshipBackbone js 路由/视图关系
【发布时间】:2013-01-16 02:13:45
【问题描述】:

我正在使用 Meteor 构建应用程序,但无法理解 Routes 和 Views 之间的关系。我的路由器工作正常,但在对调用新视图进行研究后感到困惑。

我使用 App.navigate 吗?我是不是这样称呼:

var newView = new MyView();

在适当的路由器功能范围内?这是我正在使用的代码(有效),我的应用只有两个页面 - 索引页面和项目视图:

var Aphorism = Backbone.Router.extend({
  routes: {
    "saying/:id": "showSaying"
  },
  showSaying: function (id) {
    alert('Saying id ' + id + '.');
  }
});

【问题讨论】:

    标签: backbone.js meteor backbone-views backbone-routing


    【解决方案1】:

    您定义路由器中存在哪些路由。你通常只需要其中一个,除非你有一个非常复杂的应用程序。

    然后你连接应用程序中的链接和按钮以在单击时执行 app.navigate。您可以使用视图来执行此操作,也可以使用 jQuery 之类的东西自己执行此操作,这取决于您。

    例如:

    <div id="myButton">Click me!</div>
    
    var myView = Backbone.View.extend({
      el: "#myButton",
      events: {
        "click": "go"
      },
      go: function() {
        myRouter.navigate("/someUrl", {trigger: true});
      }
    });
    

    【讨论】:

    • 感谢 Rahul,您的示例清晰明了。但是应用程序如何知道特定视图(例如您的示例中的 myView)是当前/活动视图,尤其是在多视图应用程序中?
    • “视图”只是一个可以实例化并用于挂钩到 DOM 的对象。围绕它构建架构取决于您。视图可以是按钮、菜单、整个屏幕等。因此,要让应用了解您的视图的任何信息,您必须编写连接这些点的代码。
    • 好的,我现在知道了。你的例子有效。我想 Views 的使用比我之前想象的更开放。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多