Dinamik yönlendirme AngularJS
Ben şu anda inşa yönlendirme ile AngularJS bir uygulama var. Çalışıyor ve her şey yolunda.
App.js benim dosya bu gibi görünüyor:
angular.module('myapp', ['myapp.filters', 'myapp.services', 'myapp.directives']).
config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/', { templateUrl: '/pages/home.html', controller: HomeController });
$routeProvider.when('/about', { templateUrl: '/pages/about.html', controller: AboutController });
$routeProvider.when('/privacy', { templateUrl: '/pages/privacy.html', controller: AboutController });
$routeProvider.when('/terms', { templateUrl: '/pages/terms.html', controller: AboutController });
$routeProvider.otherwise({ redirectTo: '/' });
}]);
Benim app bir CMS kopyalayın ve yeni bir html dosya içinde ekleyebileceğiniz inşa etti/sayfalardizin.
Hala yeni dinamik olarak eklenen dosyalar için bile olsa yönlendirme sağlayıcı üzerinden gitmek istiyorum.
İdeal bir dünyada, yönlendirme desen olurdu:
$routeProvider.('/sayfa adını kullanarak oluşturulan', { templateUrl: '/sayfa/sayfa adını kullanarak oluşturulan.'denetleyici: CMSController } html);
Eğer yeni bir sayfa ismim olsaydı "" almak için açısal istiyorum "/contact" ve yönlendirme "/pages/contact.html". contact.html
Böyle bir şey mümkün mü?! ve nasıl?
Güncelleme
Ben şimdi yönlendirme benim config bu
$routeProvider.when('/page/:name', { templateUrl: '/pages/home.html', controller: CMSController })
ve benim CMSController:
function CMSController($scope, $route, $routeParams) {
$route.current.templateUrl = '/pages/' $routeParams.name ".html";
alert($route.current.templateUrl);
}
CMSController.$inject = ['$scope', '$route', '$routeParams'];
Bu doğru değeri için geçerli templateUrl ayarlar.
AncakŞimdi değiştirmek istiyorumng-viewyeni templateUrl değer. Bu nasıl yapılabilir?
CEVAP
angular.module('myapp', ['myapp.filters', 'myapp.services', 'myapp.directives']).
config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/page/:name*', {
templateUrl: function(urlattr){
return '/pages/' urlattr.name '.html';
},
controller: 'CMSController'
});
}
]);
- * Ekleme yapalımdizinler birden çok düzeydedinamik olarak. Örnek:/sayfa/araba/satış listesibu sağlayıcı yakalamak olacaktır
Docs (1.3.0): gelen
Eğer templateUrl işlevi", aşağıdaki ile verilir parametreler:
{Dizi.} - rota parametreleri akım elde konum: $() yol geçerli rotayı uygulayarak"
Ayrıca
(yol, rota) : Yöntem
- yol grupları bir kolon ile başlayan ve bir yıldız ile biten adlı içerebilir: örneğin:isim*. Tüm karakterler hevesle yol eşleştiğinde verilen ad altında $routeParams saklanır.
Yükleme AngularJS denetleyicisi dinami...
Ng-desen Angularjs dinamik doğrulama...
AngularJS karma olmadan yönlendirme &#...
AngularJS ile bir form içinde dinamik ...
AngularJS - dinamik HTML dizeleri Derl...