javascript - 使用多个 View 时解析每个 Controller 的值

标签 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>

每个 View 都有自己的 Controller ,我需要解决传递到这些 Controller 中的依赖关系。我尝试了以下方法,但很困惑为什么它不起作用:

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 之前还是之后声明 Controller 并不重要。将 Controller 内联确实可行,但是随着时间的推移,这会变得笨拙且难以维护,我想将其存储在它自己的文件中。

我的印象是 Angular 足够智能,可以在引导应用程序时等待依赖项加载,难道不是这样吗?这是将我的 Controller 内联的唯一方法吗?

谢谢

最佳答案

.config 选项应该这样写:

controller: 'testController'

即将 Controller 的名称作为字符串给出。如果没有它,您将只是尝试访问名为 testController变量 - 但此函数的范围内没有任何变量。

关于javascript - 使用多个 View 时解析每个 Controller 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561187/

相关文章:

javascript - 如何借助jquery显示消息?

javascript - 为什么我只从 HttpContext 中获取部分 URL?

javascript - Android 平板电脑上的单页 Web 应用程序高度问题

AngularJS ui-router,如何在抽象父状态的解析对象中获取目标状态的名称?

javascript - 如何使用样式组件禁用 WebStorm 的这种行为

javascript - 如何使表单的元素以 Angular 交互

JavaScript html 编辑错误

html - 我在 html 中的输入不是从顶部开始的

javascript - 不要滚动元素调整大小

javascript - 获取 $watch 不是 AngularJS 中的函数错误