/ / Як вибрати інший шаблон залежно від різного кутового значення js-маршруту - javascript, angularjs, angularjs-routing

Як вибрати інший шаблон в залежності від різного значення маршруту js - javascript, angularjs, angularjs-routing

Я маю такий маршрут:

$routeProvider.when("/test/item/:item", {
templateUrl: "/test/test.html"
, controller: "TestController"
});

Тепер я хочу завантажити різні templateUrl залежно від різних: значення пункту, Як мені це зробити в angularJS?

наприклад:

$routeProvider.when("/test/item/:1", {
templateUrl: "/test/test1.html"
, controller: "TestController"
});
$routeProvider.when("/test/item/:2", {
templateUrl: "/test/test2.html"
, controller: "TestController"
});

Заздалегідь спасибі.

Відповіді:

3 для відповіді № 1

templateUrl може бути також функцією, і ви отримаєте перший аргумент - параметри маршруту:

Таким чином, ви можете зробити щось подібне: -

  $routeProvider.when("/test/item/:item", {
templateUrl: function(param){
return "/test/test" + param.name + ".html"
/*if(param.name === "somevalue"){
return someurl;
}
return someotherurl;*/
}
, controller: "TestController"
});

templateUrl - {string = | function () =} - шлях або функція, яка повертає шлях до шаблону html, який повинен використовувати ngView.

Якщо templateUrl є функцією, вона буде викликана з такими параметрами:

{Array.} - параметри маршруту, витягнуті з поточного $ location.path () шляхом застосування поточного маршруту