在AngularJS中开关控制器



我的页面上有7个不同的控制器,我想拥有一个可以根据Switch语句切换到七个控制器之一的自定义控制器。对于ex: -

//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-Router并根据您的条件显示/隐藏儿童视图
  • 使用子控制器并根据您的条件显示正确的控制器显示/隐藏元素

这是组件结构的示例。

查看

<telecom-component ng-if="data.model === 'Telecom'"></telecom-component>
<netflix-component ng-if="data.model === 'Netflix'"></netflix-component>
<!-- add other components as necessary -->

最新更新