AngularJS динамическая маршрутизация

В настоящее время у меня есть приложение AngularJS со встроенной маршрутизацией. Это работает, и все в порядке.

Мой файл app.js выглядит так:

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: '/' });
  }]);

Мое приложение имеет встроенную CMS, где вы можете копировать и добавлять новые HTML-файлы в/ страницы каталог.

Я хотел бы все еще пройти через поставщика маршрутизации хотя бы для новых динамически добавленных файлов.

В идеальном мире схема маршрутизации будет такой:

$ RouteProvider.when ( '/ИмяСтраницы', {templateUrl:' / pages /ИмяСтраницы.html ', контроллер: CMSController});

Поэтому, если бы моей новой страницей было «contact.html», я бы хотел, чтобы «angular» взял «/ contact» и перенаправил на «/pages/contact.html».

Это вообще возможно ?! и если да, то как ?!

Обновить

Теперь у меня есть это в моей конфигурации маршрутизации:

$routeProvider.when('/page/:name', { templateUrl: '/pages/home.html', controller: CMSController })

и в моем CMSController:

function CMSController($scope, $route, $routeParams) {
    $route.current.templateUrl = '/pages/' + $routeParams.name + ".html";
    alert($route.current.templateUrl);
}
CMSController.$inject = ['$scope', '$route', '$routeParams'];

Это устанавливает текущий templateUrl на правильное значение.

тем не мение Теперь я хотел бы изменитьнг-просмотр с новым значением templateUrl. Как это достигается?

Ответы на вопрос(7)

Ваш ответ на вопрос