我目前有一个 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’,controller: CMSController }) ;
因此,如果我的新页面名称是“ contact.html”,我希望能够选择“/contact”并重定向到“/pages/contact.html”。
这可能吗,如果可能,怎么可能!
更新
我现在在我的路由配置中有这个:
$routeProvider.when('/page/:name', { templateUrl: '/pages/home.html', controller: CMSController })
在我的 CMS 控制器中:
function CMSController($scope, $route, $routeParams) {
$route.current.templateUrl = '/pages/' + $routeParams.name + ".html";
alert($route.current.templateUrl);
}
CMSController.$inject = ['$scope', '$route', '$routeParams'];
这将当前 templateUrl 设置为正确的值。
但是 我现在想用新的 templateUrl 值更改 美景?