是否可以从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 !
引用
-
$routeProvider
在 AngularJS 文档上。
关于javascript - 从 Controller 获取的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22312269/