为什么ngSanitize依赖项会破坏我的应用程序?

时间:2015-07-22 20:23:00

标签: javascript angularjs dependency-injection ngsanitize

可能涉及的人

为了绑定一些html,注意到它将包含angular指令,在注入ngSanitize依赖项时,我的app停止渲染。有关为什么会发生这种情况的想法,以及我的代码是否有任何明显的问题?

TLDR:一切正常,直到将ngSanitize带入图片中!

工作控制器

angular.module('appName')
 .controller('DecksCtrl', function ($scope, Auth, $http) {. . .

破坏控制器

angular.module('appName', ['ngSanitize'])
 .controller('DecksCtrl', function ($scope, Auth, $http) {. . .

控制台错误

Uncaught Error: [$injector:modulerr] Failed to instantiate module appName due to: Error: [$injector:unpr] Unknown provider: $stateProvider

谢谢

彼得·沃德

2 个答案:

答案 0 :(得分:2)

您的问题误解了模块declarationreference与现有模块之间的差异。

要声明一个模块,有两个参数,即名称和依赖关系数组

angular.module('appName', [/* all the dependencies for this module*/]);

然后,当您添加组件时,您将使用没有第二个依赖关系参数的模块引用getter。此getter返回模块对象以将组件链接到

angular.module('appName')
 .controller('DecksCtrl', function ($scope, Auth, $http) {. . .

您所做的是尝试将依赖项注入模块引用getter。这反过来写了该模块的原始声明

答案 1 :(得分:0)

您想将其注入app.js。在那个yeoman生成器中 - appName / client / app / app.js

angular.module('yourapp', [
  //your injections here
 'ngSanitize',
 'other injection',
 'another injection'

]).config(function ($routeProvider, $locationProvider, $httpProvider) {

您在此声明所有应用依赖。