我正在使用主干并且需要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
答案 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'
},