使用require JS Framework的新手。目前我正在编写角度指令,可以在Web应用程序(html)中用作可重用的Web组件。在角度模块和&指令我用require JS定义了依赖项。在html页面中,如果很少有依赖关系表示angular JS,那么Jquery已经被加载了它是否被指令中的require JS框架识别。
指令可以来自不同的JS,是否可以加载甚至只需要JS一次。
任何建议只能实现一次加载JS文件
由于 Santhosh
答案 0 :(得分:0)
RequireJS除了自身加载之外什么都不知道。如果script
元素加载jQuery,然后RequireJS模块需要模块jquery
,那么RequireJS将尝试再次加载jQuery。在加载RequireJS之前,它不会测试是否存在加载了script
元素的jQuery。
这就是说,你可以编写代码来处理这种情况。例如,您为RequireJS提供的配置可以检查是否已定义jQuery
:
if (typeof jQuery === 'undefined') {
require.config({
paths: {
jquery: ...path/to/a/cdn/or/a/local/copy...
}
});
}
else {
define('jquery', [], function () { return jQuery; });
}
true
的{{1}}分支适用于尚未加载jQuery的情况。它配置RequireJS来查找它。 if
分支定义了一个false
模块,它只返回jquery
全局,因此RequireJS实际上不会重新加载jQuery。
您应该能够为Angular执行类似的测试。请记住,jQuery
可以被多次调用,而RequireJS将组合多次调用中传递的值。