【问题标题】:Knockout Mapping with requireJS使用 requireJS 的淘汰赛映射
【发布时间】:2013-08-05 04:34:21
【问题描述】:

我想使用 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/

【问题讨论】:

    标签: javascript requirejs knockout-mapping-plugin


    【解决方案1】:

    您几乎可以让它工作了。唯一缺少的部分是您甚至需要 mapping 模块,因为它是一个依赖项,所以它首先调用回调。

    require(['knockout', 'mapping'], function (ko) {
        console.log( 'ko: ' + ko + ', mapping: ' + ko.mapping );
    });
    

    Check Fiddle

    来自文档

    这个回调函数会在所有依赖的时候被调用 上面列出的 deps 已加载。

    因为您不需要 mapping 模块,所以稍后在加载映射模块时调用回调。

    【讨论】:

    • 太棒了,这似乎解决了问题。
    猜你喜欢
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 2012-12-05
    • 2015-03-30
    • 2017-07-07
    • 2014-03-26
    • 2014-03-20
    • 2015-07-16
    相关资源
    最近更新 更多