从控制器获取的路由

时间:2014-03-10 22:01:24

标签: javascript angularjs angular-routing

是否可以从routeProvider中的控制器加载url?

.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/LALA', {
            controller: 'LalaController',
            templateUrl: '/mlala.html'
        })
        .when('/HOHO', {
            controller: 'HohoController',
            templateUrl: '/hoho.html'
        })
        .otherwise({redirectTo: '/'});

我想要这样的事情:

.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/MO', {
            controller: 'MOController',
            templateUrl: $scope.url
        })
        .when('/MOCache', {
            controller: 'MOCacheController',
            templateUrl: $scope.url
        })
        .otherwise({redirectTo: '/'});

路由URL将在控制器中定义。

1 个答案:

答案 0 :(得分:2)

嗯,不。

但是你可以使用命名组,为templateUrl分配一个函数并获取传入的路由参数:

.when('/MO/:page', { // <-- ':page' is a named group in the pattern
        controller: 'MOController',
        templateUrl: function (params) {
            // use the route parameters to return a custom route
            return 'views/partials/mo/' + params.page + '.html';
        }
    })

您可以在视图中注入您喜欢的任何自定义参数,例如:

<!-- 'paws' and 'whiskers' will be passed to the route params -->
<a href="/MO/paws">paws page!</a>
<a href="/MO/whiskers">whiskers page!</a>

看,妈妈,没有管制员!

参考