Javascript 角度-解决:警告:尝试多次加载角度

Javascript 角度-解决:警告:尝试多次加载角度,javascript,angularjs,Javascript,Angularjs,我有一个小的angular应用程序,只有一个指令。 它将在许多其他网站上使用,只需包括一个JS文件,然后在页面上的任何地方使用该指令即可 问题是如果我在一个碰巧也使用angular的站点上尝试这样做,我会得到经典的 警告:尝试多次加载角度。 这是因为angular将自身加载到全局命名空间上 我尝试过处理angular.js代码,在以下实例上执行查找和替换操作: angular=window.angular | |(window.angular={}) 到 angular=window.angul

我有一个小的angular应用程序,只有一个指令。

它将在许多其他网站上使用,只需包括一个JS文件,然后在页面上的任何地方使用该指令即可

问题是如果我在一个碰巧也使用angular的站点上尝试这样做,我会得到经典的

警告:尝试多次加载角度。

这是因为angular将自身加载到全局命名空间上

我尝试过处理angular.js代码,在以下实例上执行查找和替换操作:

angular=window.angular | |(window.angular={})

angular=window.angularXYZ | |(window.angular={})

但它不起作用,而且看起来很粗糙

有没有给整个angular应用程序命名的想法,这样当从其他angular应用程序中初始化时,它可以很好地播放?

我认为您使用的变量可能不正确,至少根据:

我知道这可能会很痛苦,但是如果angular已经在一个站点上加载了,我建议您记录它正在使用的angularjs版本,并针对它测试您的代码。否则,您将加载一个相对较重的框架两次

显然,如果有很多版本的angularjs正在使用,您应该只测试最常见的版本和您当前使用的版本,并建议客户升级他们的angularjs版本。

您可以做的是

if (typeof angular === 'undefined') {  
  document.write('<script type="text/javascript" src=""angular.min.js""></script>');
}
if(typeof angular=='undefined'){
文件。写(“”);
}
这样,只有在尚未定义角度时,才会加载角度

if (typeof angular === 'undefined') {  
  document.write('<script type="text/javascript" src=""angular.min.js""></script>');
}