javascript - 从 Controller 获取的路由

标签 javascript angularjs angular-routing

是否可以从routeProvider中的 Controller 加载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 将在 Controller 中定义。

最佳答案

嗯,不。

但是您可以使用命名组,为 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';
        }
    })

您可以在 View 中注入(inject)您喜欢的任何自定义参数,例如:

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

看,妈妈,没有 Controller !

引用

关于javascript - 从 Controller 获取的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22312269/

相关文章:

javascript - 如何在点击时动态更改 var 值?

javascript - 使用 Javascript 访问 NASA api

javascript - 为什么在 angularjs 中找不到所需指令的 Controller ?

javascript - angularjs 将 ngModel 从包装指令传递到包装指令

javascript - 如何在指令中使用作用域的变量?

javascript - Angular : pass optional data within route

javascript - 检查浏览器是否支持 document.execCommand insertText

php - 检测短信 : browser support on Browser

Angular默认子路由未加载父组件

javascript - Angularjs - Controller 多次调用 init() 函数