我正在使用angular-ui-router,我有多个 ui-view div,如下所示:
<!DOCTYPE html>
<html ng-app="myApp">
<!-- loading libraries here etc -->
<div ui-view="viewA"></div>
</html>
每个视图都有自己的控制器,我需要解决传递给这些控制器的依赖关系。我已经尝试了以下内容并且难以理解它为什么不起作用:
var myApp = angular.module('myApp', ['ui.router']);
myApp.config(function($stateProvider) {
$stateProvider
.state('index', {
url: "",
views: {
"viewA": {
template: "{{test}}",
resolve: {
test: function(){
return {
value: 'Hello World!'
};
}
},
controller: testController
},
}
});
});
myApp.controller('testController', function($scope, test){
$scope.test = test.value;
});
I have created a plunker here.
在调用config之前或之后是否声明控制器并不重要。将控制器内联起来确实有效,但随着时间的推移,这会变得难以操作且难以维护,我想将其存储在自己的文件中。
我的印象是,在启动你的应用程序时,angular足够智能等待依赖项加载,是不是这样?是我的控制器内联的唯一方法吗?
由于
答案 0 :(得分:1)
.config
选项应以这种方式编写:
controller: 'testController'
即,将控制器的名称作为字符串。没有它,您将只是尝试访问名为testController
的变量 - 但此函数的范围内没有。