尝试从另一个模块获取常量时的角度未知提供程序

时间:2015-03-24 15:44:24

标签: angularjs

刚开始使用AngularJS,到目前为止它一直是一个具有挑战性的考验。

我今天的问题是我正在尝试通过URL上的变量配置控制器。我不希望“真正的”控制器必须知道给定参数的来源,只要它在那里。因此,主app控制器负责从URL获取参数,并设置“真实”控制器将使用的常量。

对于我的生活,我无法在初始化中看到我做错了什么。任何帮助将不胜感激(包括解决这些问题的标准做法:))

这是html:

<!DOCTYPE html>
<html ng-app="myApp">
    <head>
    <!-- the base tag is required for th Angular.js $location.search() function to work correctly -->
    <base href='/' />
    <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script>
    <script>
        angular.module("myController.constants", []);
        angular.module("myApp", ["myController", "myController.constants"], function($locationProvider) {
            $locationProvider.html5Mode(true);
        })
        .controller("myAppCtrl", ['$scope', '$location', function ($scope, $location) {
            var searchObject = $location.search();
            angular.module("myController.constants").constant('myConstant', searchObject['theConstant']);
        }]);
     </script>
    <script src="js/controllerExample.js"></script>
</head>
<body ng-controller="myAppCtrl">
    <div ng-controller="myControllerCtrl">
        <p>The constant is {{theConstant}}</p>
    </div>
</body>
</html>

这是控制器的js:

angular.module("myController", ["myController.constants"])
.controller("myControllerCtrl", ['$scope', 'myConstant', function ($scope, myConstant) {
    $scope.theConstant = myConstant;
}]);

使用上面的代码,我不断收到此错误消息

错误:[$ injector:unpr]未知提供者:myConstantProvider&lt; - myConstant&lt; - myControllerCtrl

谢谢!

1 个答案:

答案 0 :(得分:1)

我可能会弄错,但我认为你不能在控制器声明中声明一个模块。试试

angular.module("myController.constants").constant('myConstant', searchObject['theConstant']); 

外部&#34; myAppCtrl&#34;声明。