Javascript 始终需要加载插件
我正在用RequireJS和Knockout JS编写一个应用程序。该应用程序包括对knockout的扩展,该扩展向主knockout对象添加了Javascript 始终需要加载插件,javascript,knockout.js,requirejs,Javascript,Knockout.js,Requirejs,我正在用RequireJS和Knockout JS编写一个应用程序。该应用程序包括对knockout的扩展,该扩展向主knockout对象添加了ko.protectedObservable。我希望它在required'd knockout对象上始终可用,而不仅仅是在依赖项中指定它时。我可以把这些文件放在一起,但这似乎是没有必要的 此外,我可以在requirejs shim配置中将knockout protectedObservable作为knockout的依赖项,但这只会导致循环依赖项,并且无法
ko.protectedObservable
。我希望它在required'd knockout对象上始终可用,而不仅仅是在依赖项中指定它时。我可以把这些文件放在一起,但这似乎是没有必要的
此外,我可以在requirejs shim配置中将knockout protectedObservable
作为knockout
的依赖项,但这只会导致循环依赖项,并且无法加载
编辑:
我已经解决了我自己的问题,但似乎很棘手,有没有更好的办法
--Main.html
<script type="text/javascript" src="require.js"></script>
<script type="text/javascript">
require(['knockout'], function(ko) {
require(['knockout-protectedObservable']);
});
</script>
是的,更简单的方法是使您的
淘汰
ID指向更新的ko
:
require.config = {
// Your other settings
"paths": {
"knockout": "wrappers/enhanced-knockout",
"vendor/knockout": "third-party/knockout.3-2.min"
}
}
然后,您的增强型淘汰
脚本将需要的内容添加到供应商/淘汰
:
define(['vendor/knockout'], function(ko) {
ko.protectedObservable = { ... };
return ko;
});
define(['vendor/knockout'], function(ko) {
ko.protectedObservable = { ... };
return ko;
});