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
Javascript 主干为空_Javascript_Backbone.js_Requirejs - Fatal编程技术网

Javascript 主干为空

Javascript 主干为空,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,我正在使用主干网,需要js来制作一个简单的应用程序。但是,每次我尝试在浏览器中运行应用程序时,都会出现“主干为空”错误。我把它指向了它试图扩展主干模型的那一行,但我不知道为什么主干是空的?有人有什么建议吗?我一直在阅读require.config并对其进行修改,但它仍然不起作用 //main.js (this is my data-main) require.config({ baseUrl: 'scripts/lib', paths: { 'model'

我正在使用主干网,需要js来制作一个简单的应用程序。但是,每次我尝试在浏览器中运行应用程序时,都会出现“主干为空”错误。我把它指向了它试图扩展主干模型的那一行,但我不知道为什么主干是空的?有人有什么建议吗?我一直在阅读require.config并对其进行修改,但它仍然不起作用

//main.js (this is my data-main)

require.config({
     baseUrl: 'scripts/lib',
     paths: {
         'model': '../app/models'
     },
     waitSeconds: 30,
     shim: {
         'backbone': {
             deps: ['underscore', 'jquery'],
             exports: 'Backbone'
         },
         'underscore': {
             exports: '_'
         }
     }
 });
 require([
     'jquery',
     'underscore',
     'backbone',
     'model/comic'
 ], function (
     $,
     _,
     Backbone,
     Comic
 ) {
     console.log("Files loaded successfully");
 });

 //comic.js (this is my model)

 require(["backbone"], function (Backbone) {
     return Backbone.Model.extend({
         initialize: function (options) {
             this.comicName = options.comicName || "";
             this.author = options.author || "";
             this.issueNumber = options.issueNumber || "";
             console.log(this.comicName);
         }
     });
 });

在paths对象中,您需要告诉requirejs在哪里可以找到别名为“backbone”的backbone.js文件。您必须对下划线和jquery执行相同的操作

paths:{
    'model' : '../app/models',
    'backbone' : 'path/to/backbone-min', //note you don't put the .js extension here
    'underscore' : 'path/to/underscore-min',
    'jquery' : 'path/to/jquery-min'

},

请尝试require而不是define。好的,所以我尝试require而不是define,它在加载依赖项后执行函数。所以我看到“文件加载成功”,但是,它仍然抛出主干未定义的错误。你知道为什么吗?顺便谢谢你的帮助。还有,为什么需要工作而不定义?对不起,我应该说一些关于目录层次结构的事情。主干、jQuery和下划线位于scripts/lib文件夹中,该文件夹由baseUrl属性指定。所以,如果我错了,请纠正我的错误,但这不会处理这些路径吗?只要它的名称如下
lib/backbone.js
paths:{
    'model' : '../app/models',
    'backbone' : 'path/to/backbone-min', //note you don't put the .js extension here
    'underscore' : 'path/to/underscore-min',
    'jquery' : 'path/to/jquery-min'

},