Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js Require.js错误表示模块未加载_Backbone.js_Requirejs - Fatal编程技术网

Backbone.js Require.js错误表示模块未加载

Backbone.js Require.js错误表示模块未加载,backbone.js,requirejs,Backbone.js,Requirejs,我正在使用RESTHub 2.0主干堆栈 下面是我的route.js define(function (require) { 'use strict'; var $ = require('jquery'); var Backbone = require('backbone'); var HomeView = require('../views/home'); var _pageView; var AppRouter = Backbone.

我正在使用RESTHub 2.0主干堆栈

下面是我的route.js

define(function (require) {

    'use strict';

    var $ = require('jquery');
    var Backbone = require('backbone');

    var HomeView = require('../views/home');

    var _pageView;

    var AppRouter = Backbone.Router.extend({

        initialize: function() {
            console.log("Router initialize");
            Backbone.history.start({ pushState: false, root: "/" });
            _pageView = new HomeView();
        },

        routes: {
            '': 'main',
            'test': 'test'
        },

        main: function() {
            console.log("Main route activated");
            require(['views/home'], function(HomeView) {
                _pageView.render(HomeView);
            });
        },

        test: function() {
            console.log("Test route activated");
            alert("test");
        }
    });

    return AppRouter;

});
浏览器控制台出现以下错误

Error: Module name "../views/home" has not been loaded yet for context: _
http://requirejs.org/docs/errors.html#notloaded
为什么会触发此错误

我知道,这会失败,因为在调用上面的工厂函数之前,requirejs需要确保加载并执行所有依赖项。如果为define()指定了一个依赖项数组,那么requirejs会假定该数组中列出了所有依赖项,并且它不会扫描工厂函数中的其他依赖项。因此,要么不传入依赖项数组

但还是不行

在中,它说:

//THIS WILL FAIL
define(['require'], function (require) {
    var namedModule = require('name');
});
我认为您需要依赖关系数组中的模块:

define(['require', '../views/home'], function (require) {
    var namedModule = require('../views/home');
});
或者,您可以将所有模块添加到该依赖项列表中,并使用回调函数的参数:

define(['jquery', 'underscore', 'backbone', '../views/home'], function ($, _, Backbone, HomeView) {
    // now you dont need to use require(name) at all.
});

您是否碰巧有循环依赖关系?可能
。/views/home
需要(直接或间接通过其他模块)您的
路由
模块?这将导致您收到的错误。