在angularjs中的开关控制器
问题描述:
我的页面上有7个不同的控制器,我想要一个自定义控制器,可以根据switch语句切换到七个控制器之一。对于前: -在angularjs中的开关控制器
//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'并为每个状态设置控制器,那么更好,那么您可以在控制器之间切换状态。 – Maher