gpt4 book ai didi

javascript - 在AMD模块中使用knockout es5插件

转载 作者:行者123 更新时间:2023-11-28 01:31:07 24 4
gpt4 key购买 nike

我可以将 knockout 与 requirejs 应用程序 AMD 模块一起使用,here例子。实际上使用dojo工具包。

// Main viewmodel class
define(['knockout-x.y.z'], function(ko) {
return function appViewModel() {
this.firstName = ko.observable('Bert');
};
});

但是我如何使用knockoutjs扩展knockout-es5,这在AMD模块中不起作用。

最佳答案

你是对的,knockout-es5 不是符合 AMD 标准的模块。但是,这并不妨碍您将它与 RequireJS 一起正确使用。您需要做的是在您的需求配置中使用垫片( http://requirejs.org/docs/api.html#config-shim )。你需要这个的原因是因为你需要告诉 require 该插件依赖于 Knockout,因此无法首先加载。

您的需求配置可能如下所示:

var require = {
paths: {
'ko': 'knockout.min',
'koES5': 'knockout-es5.min',
},
shim: {
'koES5': { deps: ['ko'] }
}
};

这会创建 2 条路径,一条通往 Knockout,一条通往 Knockout-es5。在垫片中,我们告诉 require knout-es5 依赖于 knockout。这可确保加载按正确的顺序进行。

现在您的 RequireJS 模块应该如下所示:

define(['ko', 'koES5'], function(ko) {
return function appViewModel() {
this.firstName = ko.observable('Bert');
};
});

注意:从技术上讲,您不需要 ko 作为要求,因为 koES5 已经要求它加载,因为它被标记为依赖项。另外,您不需要 koES5 的变量,因为它不会返回您将使用的任何内容,您只需将其添加为确保文件加载的要求即可。

关于javascript - 在AMD模块中使用knockout es5插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com