angularjs中的开关控制器

angularjs中的开关控制器,angularjs,Angularjs,我的页面上有7个不同的控制器,我希望有一个自定义控制器,可以根据switch语句切换到七个控制器中的一个。例如:- //Custom Controller app.controller('custom_controller', function($http, $scope, $compile) { $scope.change = function() { switch ($scope.data['model']) { case 'Telecom':

我的页面上有7个不同的控制器,我希望有一个自定义控制器,可以根据switch语句切换到七个控制器中的一个。例如:-

//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
并为每个状态设置控制器,则更好,然后您可以在状态之间切换而不是控制器。