use*_*847 12 javascript mustache requirejs
我想通过requirejs加载和使用小胡子.
也许这个问题已经问过:
使用RequireJS使用Mustache进行AMD模块加载错误
无论如何,我想弄清楚如何修复我的代码:
main.js
require.config({
paths: {
jquery: 'libs/jquery/jquery',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-optamd3-min',
mustache: "libs/mustache/mustache"
}
});
require([
'views/app'
], function(AppView){
var app_view = new AppView;
});
Run Code Online (Sandbox Code Playgroud)
app.js
define([
'jquery',
'underscore',
'backbone',
"mustache"
], function($, _, Backbone, Mustache) {
console.log($, _, Backbone, Mustache); // <-- *** Mustache is null ***
// ......
}
);
Run Code Online (Sandbox Code Playgroud)
正如你在app.js文件评论中看到的那样,Mustache is null......
我应该使用另一个Mustache库吗?这就是我使用的胡子
您应该在您的胡子目录中创建一个新文件mustache-wrap.js,如下所示:
define(['libs/mustache/mustache'], function(Mustache){
// Tell Require.js that this module returns a reference to Mustache
return Mustache;
});
Run Code Online (Sandbox Code Playgroud)
然后你的主要是:
mustache: "libs/mustache/mustache-wrap"
Run Code Online (Sandbox Code Playgroud)
不确定RequireJS在发布此问题(和答案)时2.1.0是否已用完,但现在处理此问题的首选方法是使用shimconfig元素(项目文档页面上的更多信息).
你的main.js会变成:
require.config({
paths: {
jquery: 'libs/jquery/jquery',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-optamd3-min',
mustache: "libs/mustache/mustache"
},
shim: {
'mustache': {
exports: 'Mustache'
}
}
});
(...)
Run Code Online (Sandbox Code Playgroud)
这与包装器建议@AntoJs 实际上相同,但没有样板代码.
...但是,由于Mustache支持AMD,所以首先不需要包装/垫片!
| 归档时间: |
|
| 查看次数: |
7576 次 |
| 最近记录: |