Angular - использовать параметр маршрутов в настройке маршрута - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь создать BaseController, который мои контроллеры могут расширять для обработки действия истории для всех моделей. В настоящее время (для других маршрутов) я настроил это так:

$routeProvider.when('/', {
  redirectTo: '/static/campaigns'
}).when('/static/campaigns/new', {
  templateUrl: 'campaigns/new.html',
  controller: 'CampaignNewController'
}).....

То, что я хочу сделать для исторических маршрутов, будет общим маршрутом, охватывающим все модели, но я не уверен, есть ли способ использовать параметры маршрута в настройках, как показано ниже.

when('/static/history/:model_name', {
  templateUrl: model_name + '/history.html',
  controller: model_name + 'Controller'
})

1 Ответ

0 голосов
/ 28 июня 2018

Если вы посмотрите на документацию: https://docs.angularjs.org/api/ngRoute/provider/$routeProvider#when вы можете заметить, что templateurl может быть строкой или функцией. Возможно, если вы создали функцию в правой части templateUrl и вставили $ routeParams, прочитали значение model_name и вернули строку с model_name, это может сработать.

Вы не сможете сделать то же самое для контроллера; однако вам придется создать службу, которая принимает имя_модели в качестве входных данных и выполняет ту же логику, что и несколько контроллеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...