AngularJS [$ injector:unpr]未知提供者:dataProvider< - data< - PageCtrl

时间:2015-05-07 17:08:14

标签: javascript angularjs

我已经看到了其他答案,到目前为止没有任何帮助我。我在文件中使用以下代码收到此错误:

angular.module('myApp', [
    'ui.bootstrap',
    'ngRoute',
    'ngTouch',
    'ngResource',
    'myApp.page'
]).
config(['$routeProvider', function($routeProvider) {
  $routeProvider.otherwise({redirectTo: '/'});
}]).
config(['$provide', Decorate])

在app.js中我有这个:

{{1}}

一切正常,我使用HTTP方法获取数据没有问题,直到我开始使用Q库并将数据提取移动到配置部分。有小费吗?其他答案似乎都没有用。提前谢谢!

1 个答案:

答案 0 :(得分:4)

您的问题是由于您使用ng-controller指令实例化控制器PageCtrl,该控制器采用仅由路由器创建的动态依赖关系data。因此,当您通过路由器解析注入动态依赖关系并让路由器实例化控制器时,您不需要也不应该通过ng-controller实例化控制器,由于缺少来自注入器的依赖性可用性,它只会失败。路由器将管理控制器的实例化并为您设置相应的视图。

因此,只需从视图中删除ng-controller ,还要确保路由所代表的部分足以表示与控制器功能相关的视图。此外,我已经看到,最好不要使用ng-controller开始部分视图并使用路径实例化,这将有助于使用不同的控制器使部分视图更具可重用性。此外,在创建单元测试时,您可以轻松模拟动态依赖关系并通过$controller服务提供它。