J'ai actuellement une application AngularJS avec routage intégré. Il fonctionne et tout est ok.
Mon app.js fichier ressemble à ceci:
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: '/' });
}]);
Mon application est un CMS intégré dans lequel vous pouvez copier et ajouter de nouveaux fichiers html à l'intérieur de la /les pages d'annuaire.
Je voudrais encore aller à travers le routage fournisseur de même pour la nouvelle dynamiquement les fichiers ajoutés.
Dans un monde idéal, le modèle de routage serait:
$routeProvider.lorsque('/pagename', { templateUrl: '/pages/pagename.html', contrôleur: CMSController });
Donc, si mon nouveau nom de la page a été "contact.html" je voudrais angulaire pick up "/contact" et de rediriger vers "/pages/contact.html".
Est-ce même possible?! et si oui, comment?!
Mise à jour
J'ai maintenant dans ma configuration de routage:
$routeProvider.when('/page/:name', { templateUrl: '/pages/home.html', controller: CMSController })
et dans mon CMSController:
function CMSController($scope, $route, $routeParams) {
$route.current.templateUrl = '/pages/' + $routeParams.name + ".html";
alert($route.current.templateUrl);
}
CMSController.$inject = ['$scope', '$route', '$routeParams'];
Cela définit le courant templateUrl à la bonne valeur.
Cependant j'aimerais maintenant changer la ng-view avec la nouvelle templateUrl valeur. Comment est-ce que c'est possible?