gpt4 book ai didi

javascript - 使用angular-ui-router的带有参数的动态templateUrl

转载 作者:行者123 更新时间:2023-11-29 18:14:53 25 4
gpt4 key购买 nike

我有一条路线来处理这样的用户的创建、修改、查看和列表:

angular
.module('abcApp', ['ui.router'])
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('user.add', {
url: '/mgt/user/add',
templateUrl: 'views/mgt_user/add.html',
controller: 'MgtUserCtrl'
})
.state('user.view', {
url: '/mgt/user/view/:userId',
templateUrl: 'views/mgt_user/view.html',
controller: 'MgtUserCtrl'
})
.state('user.list', {
url: '/mgt/user/list',
templateUrl: 'views/mgt_user/list.html',
controller: 'MgtUserCtrl'
});
});

我想使用一条路线,我可以将 mode 作为参数传递并获得正确的 templateUrl:

angular
.module('abcApp', ['ui.router'])
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('userMangement', {
url: '/mgt/user/:mode/:userId',
templateUrl: 'views/mgt_user/' + $routeParams.mode + '.html',
controller: 'MgtUserCtrl'
});
});

mode 可以是:vieweditlist

有办法吗?

最佳答案

您可以使用 templateProvider。

$stateProvider
.state('userManagement', {
url: '/mgt/user/:mode/:userId',
controller: 'MgtUserCtrl',
templateProvider: ['$route', '$templateCache', '$http', function($route, $templateCache, $http) {
var url = '/views/mgt_user/' + $route.current.params.mode + '.html';
$http.get(url, {cache: $templateCache}).then(function(html) {
return html;
});
}]
})

你不能在这里使用 $routeparams 因为 $routeParams 在 $routeChangeSuccess 事件之后可用。

关于javascript - 使用angular-ui-router的带有参数的动态templateUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24107817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com