添加指令时如何避免角度加载多次?

时间:2015-06-03 17:18:41

标签: javascript angularjs

在我的app.js文件中,我创建了这样的应用程序:

D

我试图在我的一个视图中加载指令,如下所示:

angular
    .module('AngularRails',[
      'ngRoute',
      'templates',
      'firebase',
      'mySharedElements',])

然而,这不起作用?我在开发人员工具中收到错误,指出angular.module("mySharedElements", []).directive('userItem', [function() 因此选项卡锁定。我尝试解决这个问题但添加了mySharedElements'正如你从代码中看到的那样但是没有用。在我读过的各种网站上,我都是以正确的方式做到这一点,所以我很困惑我做错了什么,因为我很明显。

感谢您的帮助,我很感激。 :)

更新

我仔细检查过,并且我没有多次使用ng-app。只有在我尝试转到使用该指令的页面时才会出现错误。

我将app.js文件和指令更新到此,看看是否修复了它:

app.js:

Angular attempted to load multiple times

指令:

angular
    .module('AngularRails',[
      'ngRoute',
      'templates',
      'firebase',])
    .config(function ($routeProvider, $locationProvider) {
// etc.

并修复了它。看起来我正在遭受这种情况的组合,并且我在指令中错误地发现了templateURL,并且它搞砸了。谢谢!

1 个答案:

答案 0 :(得分:1)

angular.module("mySharedElements", [])将创建一个新的应用程序,因为您将第二个参数传递给具有空依赖项的模块。

如果您已经在代码中的其他位置创建了应用程序,那么您只需要引用它。将其更改为angular.module("mySharedElements").directive然后就可以了。

但是,查看问题Angular attempted to load multiple times中提到的错误说明,看起来您的页面上有多个角度js的引用。尝试检查并删除多个引用。