动态设置控制器Angular

时间:2016-04-21 11:04:46

标签: javascript angularjs angular-ui-router angularjs-routing angular-controller

我有一个与在运行时设置控制器有关的查询。 我想要这样的东西:

.state{'app.thisState',
   url: '/thisUrl',
   views:{
     templateUrl: 'templates/some_template.html',
     controller: 'XYZCtrlr' //This is where I want to set different controllers depending on the scenario.
   }};

我们如何在运行时设置控制器?

1 个答案:

答案 0 :(得分:1)

您可以使用ui-router状态的controllerProvider选项

.state ('app.thisState', { //<-- correct syntax here
    url: '/thisUrl',
    views: {
        templateUrl: 'templates/some_template.html',
        controller: 'XYZCtrlr',
        controllerProvider: function($stateParams) { //<-- add dependencies here
            //perform logic here
            var ctrlName = $stateParams.type + "Controller";
            return ctrlName; //return string name here, which will the name of controller.
        }
    }
};