如何在没有进样器/模块化器的情况下将外部模块注入AngularJS单页面应用程序?

时间:2015-12-04 17:43:25

标签: angularjs

我是AngularJS的新手,每次遵循教程并添加外部模块时都会遇到问题。我对如何避免注射错误有一些疑问。

Q1。如何解决喷油器/模块问题?我使用bower来安装'ngSanitize',包含在HTML中:

<body ...>

 <script src="assets/js/angular.min.js"></script>
        <script src="bower_components/ngSanitize/index.js" type="text/javascript"></script>

</body>

Q2。如果添加模块的顺序会影响结果,是否有NetBeans插件或在线应用程序检查模块依赖性,以便按顺序添加它们?

Q3。最后,在没有进样器/模块化器的情况下将外部模块注入AngularJS单页面应用程序的正确步骤是什么?

原件:

angular.module('app', [
    'ngRoute', 
    'ngAnimate', 
    'angularMoment', 
    'angular-preload-image',
    'truncate',
    'app.core'
  ]);

目标情况会引发'ngSanitize'的注入错误:

angular.module('app', [
    'ngRoute', 
    'ngSanitize', 
    'ngAnimate', 
    'angularMoment', 
    'angular-preload-image',
    'truncate',     
    'app.core' 
  ]);

The displayed error that crashes the application loading

我使用angularjs.org/1.4.8得到了同样的错误。

1 个答案:

答案 0 :(得分:0)

我认为主要问题是使用特定的ngSanitize。

您应该使用:bower install angular-sanitize而不是bower install ngSanitize安装它。

尽管与同一事物有关,ngSanitize是根据它的回购说明:

  

angular-sanitize模块,不包括用于Backbone和的angular.js   其他框架

正如您所看到的,它们属于不同的回购:

angular-sanitize: https://github.com/angular/bower-angular-sanitize

ngSanitize: https://github.com/gdi2290/ngSanitize

HTML中的脚本加载非常重要。我总是首先插入jQuery,然后插入angular,然后插入角度特定模块,如(angular-animateangular-sanitize等),然后插入自定义角度模块脚本。

关于Q3,我不认为你搞砸了模块注入。它只是因为使用ngSanitize而不是angular-sanitize而显示错误。