我想使用RequireJS来管理我网站中的插件。我使用了映射插件的淘汰赛,我正在阅读以下答案https://stackoverflow.com/a/16449509/1070291,我遇到了一些麻烦。
回调似乎在实际的require()语句之后运行,这意味着ko.mapping
未定义
知道我缺少什么吗?
<script>
var require = {
paths: {
"knockout": "//cdnjs.cloudflare.com/ajax/libs/knockout/2.2.1/knockout-min",
"mapping": "//cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.3.5/knockout.mapping"
},
deps: ['knockout', 'mapping'],
callback: function (ko, mapping) {
ko.mapping = mapping;
}
};
</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.8/require.min.js"></script>
<script>
require(['knockout'], function (ko) {
alert( 'ko: ' + ko + ', mapping: ' + ko.mapping);
});
</script>
JsFiddle:http://jsfiddle.net/WLegU/2/
答案 0 :(得分:2)
你几乎接近让它运转起来。唯一缺少的部分是你需要甚至需要mapping
模块,而模块又首先调用回调,因为它是一个依赖项。
require(['knockout', 'mapping'], function (ko) {
console.log( 'ko: ' + ko + ', mapping: ' + ko.mapping );
});
来自文档
当所有依赖项都将调用此回调函数 上面列出的deps中已加载。
因为您不需要mapping
模块,所以稍后在加载映射模块时会调用回调。