我已经阅读了很多这方面的书,甚至还专门买了一本关于使用 require.js 设置 marionette 应用程序的书,并关注了 this。 github 上的一些操作方法似乎非常简单...但是出于某种原因,我似乎无法像启动一个空的 Marionette 项目那样简单地工作!
我的项目结构如下:
- 根目录
- 模特
- 观点
- 图书馆
- babysitter.js
- 主干.js
- jquery.js
- Marionette .js
- require.js
- 文本.js
- tpl.js
- underscore.js
- wreqr.js
- 收藏
- 模板
- index.html
- main.js
这是我的 index.html:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script data-main="main" src="libs/require.js" type="text/javascript"></script>
</body>
</html>
还有我的 main.js:
require.config({
paths:{
jquery:"libs/jquery",
underscore: "libs/underscore",
backbone: "libs/backbone",
text: "libs/text",
tpl: "libs/tpl",
marionette: 'libs/marionette',
'backbone.wreqr' : 'libs/wreqr',
'backbone.babysitter' : 'libs/babysitter'
},
shim:{
underscore:{
exports: "_"
},
backbone:{
deps: ['underscore','jquery'],
exports:'Backbone'
}
}
});
require(['marionette'],function(Marionette){
var Application = new Marionette.Application();
Application.on("initialize:after", function(){
alert("Application has started!");
});
Application.start();
});
我从他们的 site 下载了 Marionette.js 的 AMD/RequireJS 版本
在浏览器中打开 index.html 后,我在控制台中看到错误“引用错误:主干未定义”(在 marionette.js 的第 20 行)
我做错了什么?
最佳答案
Marionette 需要主干,所以要么将 marionette 添加到你的 shim 中,要么添加到你的 require 调用中,
shim:{
marionette : ['backbone'],
...
}
或
require(['backbone', 'marionette'],function(Backbone, Marionette){
关于javascript - 如何使用 require.js 设置一个简单的 Backbone/Marionette 项目及其依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19771482/