0

我有一個與在運行時設置控制器相關的查詢。 我想是這樣的:動態設置控制器角度

.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

你可以使用的UI路由器狀態

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

可以請你'精心VAR ctrlName = $ stateParams.type + 「控制器」 選項controllerProvider;'。這一行發生了什麼?對不起,我是一個新手角 –

+0

基本上只是爲了演示,我沒有注入一個$ stateParams依賴項,然後我正在閱讀狀態參數&創建控制器的名稱.. **我寫的代碼只是爲了演示,評論** –

+0

我知道了。這裏可能有$ rootScope依賴關係嗎? –