【发布时间】:2014-12-07 14:57:23
【问题描述】:
我的观点如下:
<html ng-app="app" ng-controller="mainController">[...]
<body ng-controller="currentController">[...]
我希望能够从上层控制器 (mainController) 的变量 ($scope.currentController) 设置主体控制器。控制器mainController 如下所示:
angular.module("app").controller("mainController", function($scope) {
$scope.currentController = "indexController"; // 'indexController' being the name of the controller I want to apply to the view
});
这显然不起作用,如何从JS动态设置控制器到视图?
编辑:(回复@mrhobo)
我试过这个,因为我每个控制器都有一个文件:
angular.module("app").controller("mainController", function($scope, indexController) {
$scope.currentController = indexController;
});
我收到此错误:Doc Angular error
【问题讨论】:
-
是否可以将
mainController移动到html标签上来实现父子关系? -
mainController 是用来管理网站使用的控制器的。主页可以是
indexController,应用程序页面可以是appController。这两个控制器不管理相同的事情。我试图将它们都放在mainController上,它工作正常,但我的控制台上有错误,因为我引用了它们中不存在的元素。这就是为什么我更喜欢mainController根据使用的页面选择要应用的一个。但是在显示的代码中,我只是展示了我想做的基本想法:使用它的名称从 JS 设置一个控制器。 -
我认为您正在寻找路由概念。
-
我在正文中已经有了一个 ng-view。 (看答案,我已经回复你了)我知道我可以使用 ng-include/ng-if/ng-show/ng-hide/ng-switch,... 但我想避免不得不复制全身两次……
-
如果可以将
mainController移动到html标签上,使得body上的控制器是mainController的子控制器是可以解决的。让我知道这是否可以接受。
标签: angularjs controller