Я маю такий маршрут:
$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 для відповіді № 1templateUrl може бути також функцією, і ви отримаєте перший аргумент - параметри маршруту:
Таким чином, ви можете зробити щось подібне: -
$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 () шляхом застосування поточного маршруту