javascript - Backbone 应用组织

标签 javascript backbone.js closures underscore.js

我按照本页 http://weblog.bocoup.com/organizing-your-backbone-js-application-with-modules 中的描述组织了我的 Backbone 应用程序

对于那些还没有读过文章的人,我将简要解释一下这个想法: 我定义了一个变量来保存我的所有模块。

var Application = {
  module: function(){
    var modules = {};
    return function(name){
      if (typeof modules[name] == 'undefined')
      {
        modules[name] = {
          Model: {},
          Collection: {},
          Views: {},
        }
      }
      return modules[name];
    };
  }()
};

Application.module 是一个按名称返回模块的函数。然后我定义我的应用程序模块如下:

(function(chat){
  chat.Model = Backbone.Model.extend({ ... }),
  chat.Collection = Backbone.Collection.extend({ ... }),
  etc.
})(Application.module('Chat'));

一切似乎都很好 - 所有代码都被分成模块,但是当我尝试从模块的类之一实例化变量时。

$(document).ready(function(){
  var foo = new Application.module('Chat').Collection();
}); 

上面的代码给了我 Backbone 的“未捕获类型错误:无法读取未定义的属性‘绑定(bind)’”错误,我不明白为什么?

最佳答案

我上周也看到了这个错误...你正确包含了 underscore.js 吗? 就我而言,我在页面中包含了 underscore.js,但在backbone.js 引用之后。

underscore.js 确实必须先加载,backbone 才能完成它的任务:)

这样做:

<script src="underscore.min.js"></script>
<script src="backbone.min.js"></script>

关于javascript - Backbone 应用组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8274009/

相关文章:

javascript - 处理来自多个 AJAX JQuery 查询的独立数据

javascript - 如何在运行时动态重新配置 Drupal 的基于 jQuery 的自动完成功能?

javascript - _.result 用例示例

javascript - 无法使用 backbone.js 向 flask-restful API 发出请求

rest - Backbone.js + 休息。 fetch() 之后不会填充集合

c++ - Ruby block ,C++ 中的 java 闭包

javascript - 用 moment.js 减去秒数

php - 在 Safari/Mac 中需要有关 jQuery/AJAX 调用的帮助

javascript - 动态创建的元素和传递参数的事件绑定(bind)

ios - 在 Swift 运行时从闭包中获取参数信息