Backbone为null

时间:2014-02-05 05:01:26

标签: javascript backbone.js requirejs

我正在使用主干并且需要js来创建我想要的简单应用程序。但是,每次我尝试在浏览器中运行应用程序时,都会出现“Backbone is null”错误。我把它指向它尝试扩展Backbone模型的行,但是我不知道为什么Backbone会以null形式出现?有人有什么建议吗?我一直在阅读并讨论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);
         }
     });
 });
Directory Hierarchy
-------------------
    main.html
    assets
      scripts
        app
          models
            comic.js
        lib
          backbone.js
          underscore.js
          require.js
          jquery.js
      styles
        bootstrap.min.css

1 个答案:

答案 0 :(得分:2)

在你的路径对象中,你需要告诉requirejs在哪里找到骨干.js文件,别名为'backbone'。您将不得不使用下划线和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'

},