Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何配置RequiredJS以加载依赖于KnockoutJS的JS文件?_Javascript_Knockout.js_Requirejs - Fatal编程技术网

Javascript 如何配置RequiredJS以加载依赖于KnockoutJS的JS文件?

Javascript 如何配置RequiredJS以加载依赖于KnockoutJS的JS文件?,javascript,knockout.js,requirejs,Javascript,Knockout.js,Requirejs,我偶然发现了一个可能的解决方案,但它不起作用,我得到了相同的错误ko is not define 我把它放在它自己的JS文件中,因为我假设knockout.inject需要放在一个模块中,正如原始文章中所解释的那样 define('knockout.inject', ['knockout'], function (k) { window.ko = k; return k; }); 那么这个, 但是,我不确定如何实例化该文件,我得到了错误:ko未定义。后跟文件和目录的名称 使用敲

我偶然发现了一个可能的解决方案,但它不起作用,我得到了相同的错误
ko is not define

我把它放在它自己的JS文件中,因为我假设
knockout.inject
需要放在一个模块中,正如原始文章中所解释的那样

define('knockout.inject', ['knockout'], function (k) {
    window.ko = k;
    return k;
});
那么这个,

但是,我不确定如何实例化该文件,我得到了错误:
ko未定义
。后跟文件和目录的名称

使用敲除映射,我所要做的就是:

ko.mapping = komapping;

如何实例化此文件?

如果使用require、直接或作为依赖项加载
ko
ko
未定义为全局变量,因此,非AMD插件无法附加到
ko

有两种解决方案:

  • 修改插件,使其符合amd标准。这意味着加载ko作为模块的依赖项,并在模块中本地引用ko时包含插件功能性

  • 使用
    垫片
    ,这并不是最好的解决方案,但如果您不想将插件重新定义为AMD兼容模块,那么这是最简单的解决方案

  • 但是,请不要混合使用这两种模式,因为您将添加与全局版本不同的本地版本的
    ko

    您可以在此处找到有关如何使用垫片的详细说明:。在这里,你会发现使用垫片的细节,当你有插件,是不是AMD兼容。在本例中,对于非AMD jQuery插件,问题和解决方案已被彻底解释,但对于ko插件,工作方式完全相同

    ko.mapping = komapping;