刚开始使用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
谢谢!
答案 0 :(得分:1)
我可能会弄错,但我认为你不能在控制器声明中声明一个模块。试试
angular.module("myController.constants").constant('myConstant', searchObject['theConstant']);
外部&#34; myAppCtrl&#34;声明。