关于Backbone.js MVC的2个问题

时间:2013-10-22 16:19:06

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

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

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

  2. 我在哪里实例化View(控制器)?在控制器文件中或HTML文件中的脚本标记中?什么是干净的方式

1 个答案:

答案 0 :(得分:0)

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

1 - 可以在Backbone视图中使用任何可以绑定到元素的事件。事件数据通过参数发送到函数。 ex(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();