使用requirejs加载主干插件

时间:2013-11-12 21:24:33

标签: javascript backbone.js requirejs

我想知道如何使用require.js加载主干插件我目前在main.js中有这个

(function() {
    'use strict';

    require.config({
    shim: {
        underscore: {
            exports: '_'
        },
        backbone: {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        },
        deepModel: {
            deps: ['underscore', 'backbone']
        }
    },
    paths: {
        jquery: 'lib/jquery/jquery',
        underscore: 'lib/underscore/underscore',
        backbone: 'lib/backbone/backbone',
        text: 'lib/requirejs-text/text',
        deepModel: 'lib/deep-model/deep-model.min'
    },

在我的模型中,我有类似的东西

var myapp = myapp|| {};
(function() {
    'use strict';

    define([
    'jquery',
    'underscore',
    'backbone',
    'deepModel',
    ], function($, _, Backbone) {

        myapp.model= new Backbone.DeepModel.extend({
            defaults: {
            },

            urlRoot: '/users',

出于某种原因,上述似乎没有按预期工作。我想我错过了什么,但不确定那是什么。我正在使用the backbone deep model plugin

这是我在调试器中得到的错误

  

未捕获TypeError:对象[object Object]没有方法'apply'

2 个答案:

答案 0 :(得分:2)

在函数签名中将DeepModel添加到您的范围:

define([
'jquery',
'underscore',
'backbone',
'deepModel',
], function($, _, Backbone, **DeepModel**) 

答案 1 :(得分:0)

如果您使用AMD兼容版本的骨干和下划线,它可能会让您的生活更轻松。默认情况下,它们不支持AMD。

https://github.com/amdjs/backbone

https://github.com/amdjs/underscore