动态设置控制器 Angular

Setting controller dynamically Angular

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

.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.
   }};

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

您可以使用 ui 的 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.
        }
    }
};