【问题标题】:Backbone + Require with Backbone.localStorageBackbone + Require 与 Backbone.localStorage
【发布时间】:2013-03-19 11:14:55
【问题描述】:

我正在使用 Backbone 和 RequireJS 构建一个应用程序,使用 this 作为指南。由于 Backbone 不是 AMD,我使用的是 RequireJS shim,如我上面提到的指南中所述。

我的主脚本如下所示:

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 shim 中的 deps: ['backbone']exports: Backbone 确保包含 Backbone。

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

我正在像这样启动其他模块:

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

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

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

【问题讨论】:

  • 它可能没有效果,但我很确定你的 localStorage 主干垫片不应该有导出,它只是将自己附加到主干

标签: javascript backbone.js local-storage requirejs


【解决方案1】:

这是我的咖啡脚本版本:

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 只需在其之前加载主干即可。

【讨论】:

  • 如果您在模块中定义路由器,那么必须为本地存储分配一些东西吗?我在之后定义了路由器
  • 我不明白你的问题 - 发布一个新问题以及示例代码,我可以看看它
猜你喜欢
  • 2012-06-27
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 2012-12-09
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多