angularjs中的开关控制器
我的页面上有7个不同的控制器,我希望有一个自定义控制器,可以根据switch语句切换到七个控制器中的一个。例如:-angularjs中的开关控制器,angularjs,Angularjs,我的页面上有7个不同的控制器,我希望有一个自定义控制器,可以根据switch语句切换到七个控制器中的一个。例如:- //Custom Controller app.controller('custom_controller', function($http, $scope, $compile) { $scope.change = function() { switch ($scope.data['model']) { case 'Telecom':
//Custom Controller
app.controller('custom_controller', function($http, $scope, $compile) {
$scope.change = function() {
switch ($scope.data['model']) {
case 'Telecom':
$scope.controller = 'Telecom_Controller';
break;
case 'Netflix':
$scope.controller = 'Netflix_Controller';
break;
case 'Bank':
$scope.controller = 'Bank_Controller';
break;
case 'Beauty':
$scope.controller = 'Beauty_Controller';
break;
case 'Mutual Funds':
$scope.controller = 'MF_Controller';
break;
case 'Motor Insurance':
$scope.controller = 'MI_Controller';
break;
case 'Job Hunt':
$scope.controller = 'Job_Controller';
break;
default:
alert("None Selected");
break;
}
};
});
然后在“html”中,我想相应地切换到该控制器,如:-
<div ng-controller={{ controller }}>
</div>
提前感谢:)这似乎是一个糟糕的设计,从您的描述来看,没有迹象表明您需要这样做 您可以做些什么:
- 创建组件并根据您的条件显示/隐藏正确的组件(首选选项)
- 使用ui路由器并根据您的条件显示/隐藏子视图
- 使用子控制器并根据您的条件使用正确的控制器显示/隐藏元素
<telecom-component ng-if="data.model === 'Telecom'"></telecom-component>
<netflix-component ng-if="data.model === 'Netflix'"></netflix-component>
<!-- add other components as necessary -->
那么问题出在哪里呢?您将控制器定义为公共函数,控制器的类型是类,您不能像在代码中那样创建控制器。如果您使用ngRoute
或ui-router
并为每个状态设置控制器,则更好,然后您可以在状态之间切换而不是控制器。