未知提供者:ngTagsInputProvider< - ngTagsInput

时间:2014-09-14 12:34:48

标签: angularjs angularjs-service ng-tags-input

我将2.1.1版本的ngtagsinput注入我的控制器:

app.controller('homeCtrl', ['$scope','$http','ngTagsInput', function($scope,$http){
}])

*注意:测试!将ngTagsInput添加到函数()中不会产生任何影响......

我在angularjs lib之后加载了ngtagsinput lib。

我想知道还有什么我可以测试来解决错误:

Error: [$injector:unpr] Unknown provider: ngTagsInputProvider <- ngTagsInput
http://errors.angularjs.org/1.2.9/$injector/unpr?p0=ngTagsInputProvider%20%3C-%20ngTagsInput

不要误会我的意思,我知道基本上没有检测到这个提供商。

但是找到了我的lib(没有报告404),我看到它的库中使用了ngTagsInput ....

所以,它真的让我觉得同样的解决方案不再适用于这个lib!关于这个lib有什么特别之处以及为什么在我遇到修复它的所有标准时会出现这个错误?

1 个答案:

答案 0 :(得分:7)

看起来您已尝试将ngTagsInput注入控制器,而您应该将其作为依赖项注入模块。例如:

angular.module('myApp', ['ngTagsInput'])

备注模块,而不是控制器

您可以按创作者示例查看:https://github.com/mbenford/ngTagsInput#example


这是因为角度中使用了多种类型的注射。声明模块时,需要指定可在模块中使用的其他模块。

请参阅:https://docs.angularjs.org/guide/module

当你注入一个控制器时,你基本上是说你想在其中使用一个特定的对象。该对象必须是模块的一部分才有效。对于第三方库,这通常意味着将其添加为模块依赖项(如上所述),然后将属于该库的任何对象注入到控制器和服务中。