Как динамически изменить шаблон URL в angularjs из контроллера?

0

С нижнего углового кода я хочу получить параметр namee в templateUrl пожалуйста, помогите мне создать динамический templateurl.

sampleApp.config(['$routeProvider',
  function($routeProvider){
    $routeProvider.
    when('/AddNewOrder/:namee', { 
        controller: 'AddOrderController',
        templateUrl:'templates/'+namee +'.html';
    }).
    when('/ShowOrders/:name', {
    templateUrl: 'templates/show_orders.html',
    controller: 'ShowOrdersController'
    }).
    otherwise({
    redirectTo: '/AddNewOrder/add_orders'
  });
}]);
  • 0
    @Pamio Обратите внимание, что он не использует ui-router.
  • 0
    @Subash, только что отметил спасибо. Мои искренние извинения, удалил мой комментарий.
Теги:
angular-ui-router

1 ответ

0

Вы можете передать функцию в качестве значения templateUrl. Возвращаемое значение функции будет значением для templateUrl. Функция имеет доступ к атрибутам URL.

Обратите внимание, что имя URL подстановки будет значением, к которому вы хотите получить доступ. В вашем случае его namee. console.log(attrs), если вы хотите увидеть детали attrs.

$routeProvider.
when('/AddNewOrder/:namee', { 
   controller: 'AddOrderController',
   templateUrl: function(attrs) {
      return 'templates/'+ attrs.namee +'.html';
   }
})
  • 0
    $ RouteProvider. when ('/ AddNewOrder /: namee', {controller: 'AddOrderController', templateUrl: function ($ stateParams) {return 'templates /' + $ stateParams.namee + '. html';}}). Я пытался таким образом, но все еще получил ошибку.
  • 0
    что вы имеете в виду? это будет так же хорошо. Вы можете назвать свою переменную как хотите. Но так как $ stateparams используется для ui-router, он может перепутать с другими
Показать ещё 5 комментариев

Ещё вопросы

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