Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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 主干未定义,尽管已引用_Backbone.js_Requirejs - Fatal编程技术网

Backbone.js 主干未定义,尽管已引用

Backbone.js 主干未定义,尽管已引用,backbone.js,requirejs,Backbone.js,Requirejs,我有一个应用程序模块来加载路由器。该应用程序定义了我需要的模块的依赖项,并将它们放入其匿名函数中。在这个函数中,路由器正在初始化。 如果路由器模块还定义了对主干网的依赖关系并将其放入其匿名功能中,则主干网在路由器模块内不可用。 为什么 错误: 以下是启动顺序: 这是我的应用程序: require.config({ paths: { jquery: 'jquery', underscore: 'underscore', backbone: 'backbone',

我有一个应用程序模块来加载路由器。该应用程序定义了我需要的模块的依赖项,并将它们放入其匿名函数中。在这个函数中,路由器正在初始化。 如果路由器模块还定义了对主干网的依赖关系并将其放入其匿名功能中,则主干网在路由器模块内不可用。 为什么

错误:

以下是启动顺序:

这是我的应用程序:

require.config({
paths: {
    jquery: 'jquery',
    underscore: 'underscore',
    backbone: 'backbone',
    mustache: 'mustache',
    router: 'router'
},
shim: {
    'underscore': ['jquery'],
    'backbone': ['underscore'],
    'router' : ['backbone'],
    'mustache': ['backbone']   } 
});

 define([
'jquery',
'underscore',
'backbone',
'mustache',
'router'
],
function($, _, Backbone, Mustache, Router) {
var initialize = function(){
    console.log("app initialized");
    Router.initialize();
};
return { initialize: initialize};
});
我的路由器定义:

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

console.log("Router defined");

var initialize = function () {
    console.log("router initialized");
    //Doing stuff on Backbone
};
return { initialize: initialize };
});
如果我把对主干网的引用放到路由器模块中,我就可以使用它了

编辑:

以下是主文件:

require([
   'app',
], function(App){
   App.initialize();
});

正如您从日志中看到的,您的应用程序是在路由器之前定义的。
main.js
中存在错误,不应使用
define()
,而应使用
require()
函数

require.config({
paths: {
    jquery: 'jquery',
    underscore: 'underscore',
    backbone: 'backbone',
    mustache: 'mustache',
    router: 'router'
},
shim: {
    'underscore': ['jquery'],
    'backbone': ['underscore'],
    'router' : ['backbone'],
    'mustache': ['backbone']   } 
});

 require([
'router'
],
function(Router) {
    console.log("app initialized");
    Router.initialize();
});

如果我使用require,main.js会说应用程序未定义。我在上面的问题中添加了我的main.js。你的应用程序和main.js文件在同一个文件夹中吗?是的,我将所有文件都放在同一个文件夹中。不要在错误的文件路径上遇到任何问题。我会在基本工作正常时改变这一点:)