Как открыть разные шаблоны в зависимости от параметра angular?

Есть роут

.state('app.catID', {
    url: '/catid/:catID',
    views: {
        'menuContent': {
          templateUrl: 'templates/category.html',
          controller: 'catCtrl'
          },
        'filterView': {
          templateUrl: 'templates/filter.html',
          controller: 'filCtrl'
        },
          'sideView': {
           templateUrl: 'templates/category/category_dynamic.html',
           controller: 'categoryMenuCtrl'
        }
      }
  })


Как сделать, чтобы когда параметр catid = 123 - то
'filterView': {
templateUrl: 'templates/filter123.html',
controller: 'filCtrl'
},
, а когда
456
'filterView': {
templateUrl: 'templates/filter456.html',
controller: 'filCtrl'
},
,
а во всех других случаях - просто filter.html ?
  • Вопрос задан
  • 261 просмотр
Решения вопроса 1
miraage
@miraage
Старый прогер
angular-ui.github.io/ui-router/site/#/api/ui.route...

filterView: {
    templateUrl: function (params) {
      return 'templates/filter' + params.catID + '.html';
   }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@bromzh
Drugs-driven development
https://docs.angularjs.org/api/ng/directive/ngInclude

Но это попахивает г-нокодом. Делай директиву, в неё передавай catid.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы