【问题标题】:2 questions on Backbone.js MVC关于 Backbone.js MVC 的 2 个问题
【发布时间】:2013-10-22 16:19:05
【问题描述】:

我开始使用 BB.js,而且我是 MVC 的新手。

  1. 所以我将 JQuery 与 BB 一起使用,而 BB 似乎无法处理所有事件。例如:加载事件,我也认为是 keboard 事件。我虽然在使用 BB 时,所有代码都需要在 BB Obect 中(例如:查看对象),但现在似乎我还必须对某些事件使用 JQuery,这会将我的代码分成多个部分.

  2. 在哪里实例化视图(控制器)?在控制器文件中还是在 HTML 文件中的脚本标记中?什么是干净的方法

【问题讨论】:

    标签: jquery model-view-controller backbone.js


    【解决方案1】:

    主干模型/视图/集合都是为了模仿 jQuery 和下划线 API 而构建的。所以回答你的问题:

    1 - 任何可以绑定到元素的事件都可以在 Backbone 视图中使用。事件数据通过参数发送到函数。前 (via Backbone docs):

    var DocumentView = Backbone.View.extend({
    
      events: {
        "dblclick"                : "open",
        "click .icon.doc"         : "select",
        "contextmenu .icon.doc"   : "showMenu",
        "click .show_notes"       : "toggleNotes",
        "click .title .lock"      : "editAccessLevel",
        "mouseover .title .date"  : "showTooltip"
      },
    
      render: function() {
        this.$el.html(this.template(this.model.attributes));
        return this;
      },
    
      open: function() {
        window.open(this.model.get("viewer_url"));
      },
    
      select: function() {
        this.model.set({selected: true});
      },
    
      ...
    
    });
    

    2 - 您在脚本文件或脚本标签中实例化您的视图。从上面的例子:

    var Document = new DocumentView();
    
    Document.render();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      相关资源
      最近更新 更多