使用多个视图时,解析每个控制器的值

时间:2014-07-03 18:46:08

标签: javascript html angularjs angular-ui-router

我正在使用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足够智能等待依赖项加载,是不是这样?是我的控制器内联的唯一方法吗?

由于

1 个答案:

答案 0 :(得分:1)

.config选项应以这种方式编写:

controller: 'testController'

即,将控制器的名称作为字符串。没有它,您将只是尝试访问名为testController变量 - 但此函数的范围内没有。