Установка контроллера динамически угловая

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

Как мы можем установить контроллеры во время выполнения?

Теги:
angular-ui-router
angularjs-routing

1 ответ

1
Лучший ответ

Вы можете использовать опцию controllerProvider состояния ui-router

.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
    Не могли бы вы elaborate var ctrlName = $stateParams.type + "Controller"; пожалуйста, elaborate var ctrlName = $stateParams.type + "Controller"; , Что происходит в этой линии? Извините, я новичок в угловой
  • 0
    В основном, просто для демонстрации, я внедрил зависимость $ stateParams, а затем я читаю параметр состояния и создаю имя контроллера. Я написал этот код только для демонстрации с комментариями
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню