Şu anda yerleşik yönlendirme içeren bir AngularJS uygulamam var. Çalışıyor ve her şey yolunda.
App.js dosyam şöyle 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: '/' });
}]);
Uygulamamda, / pages dizini içinde yeni html dosyalarını kopyalayıp ekleyebileceğiniz yerleşik bir CMS var .
Dinamik olarak eklenen yeni dosyalar için bile yine de yönlendirme sağlayıcısından geçmek istiyorum.
İdeal bir dünyada yönlendirme modeli şöyle olacaktır:
$ routeProvider.when ('/ sayfaadı ', { şablonUrl : '/ sayfalar / sayfaadı .html', denetleyici: CMSController});
Yeni sayfa adım "contact.html" ise "/ contact" yi açısal olarak alıp "/pages/contact.html" adresine yönlendirmek isterim.
Bu mümkün mü ?! ve eğer öyleyse nasıl ?!
Güncelleme
Şimdi bunu yönlendirme yapılandırmamda bulabilirsiniz:
$routeProvider.when('/page/:name', { templateUrl: '/pages/home.html', controller: CMSController })
ve CMSController'ımda:
function CMSController($scope, $route, $routeParams) {
$route.current.templateUrl = '/pages/' + $routeParams.name + ".html";
alert($route.current.templateUrl);
}
CMSController.$inject = ['$scope', '$route', '$routeParams'];
Bu, geçerli templateUrl değerini doğru değere ayarlar.
Ancak şimdi ng-görünümünü yeni templateUrl değeri ile değiştirmek istiyorum . Bu nasıl başarılır?