Backbone +需要Backbone.localStorage

时间:2013-03-28 20:34:49

标签: javascript backbone.js local-storage requirejs

我正在使用this作为指南,使用Backbone和RequireJS构建应用。由于Backbone是非AMD的,我正在使用RequireJS垫片,如上面提到的指南所述。

我的主要脚本如下:

require.config({
  baseUrl: "js/",
  paths: {
    jquery: 'lib/jquery.min',
    underscore: 'lib/underscore',
    backbone: 'lib/backbone',
    'backbone.localStorage': 'lib/backbone.localStorage-min'
  },
  shim: {
    underscore: {
      exports: "_"
    },
    backbone: {
      deps: ['underscore', 'jquery'],
      exports: 'Backbone'
    },
    'backbone.localStorage': {
      deps: ['backbone'],
      exports: 'Backbone'
    }
  }
});

该指南显示在其他模块中包含'backbone.localStorage'而不包括Backbone,因此我假设localStorage垫片中的deps: ['backbone']exports: Backbone确保包含Backbone。

但是,我在Javascript控制台中一直收到undefined method: extend错误

我正在开始像这样的其他模块:

define(['underscore','backbone.localStorage'], function(_, Backbone) {

如何在RequireJS中包含Backbone和Backbone.localStorage?

这是我第一次使用Backbone或RequireJS,所以如果我的问题很明显,我很抱歉......

1 个答案:

答案 0 :(得分:2)

这是我的咖啡脚本版本:

shim:
 underscore:
  exports: "_"
 backbone:
  deps: ["underscore", "jquery"]
  exports: "Backbone"
 localStorage:
  deps: ["backbone"]

paths:
  backbone: "lib/backbone/backbone-min"
  underscore: "lib/underscore/underscore-min"
  localStorage: "lib/backbone.localStorage/backbone.localStorage"

然后在模块中

define [
 "underscore"
 "backbone"
 "localStorage"
], (_, Backbone) ->

本地存储基本上将自身附加到Backbone对象,因此在它之前必须由AMD加载。