使用angular-ui-router配置参数
dynamic templateUrl with param using angular-ui-router
我有一个路由来处理创建,修改,查看和用户列表,像这样:
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
可以是:view
, edit
, list
。
有办法做到这一点吗?
你可以使用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在$ routechangessuccess事件之后可用。
相关文章:
- 我可以访问量角器配置文件中的参数吗
- 如何将Google Analytics配置为将URL参数作为单个页面进行跟踪
- 如何在不选择模式配置参数的情况下,使用mongoose在MongoDB模式实例化中的关联数组/对象中执行foreach
- 使用继承配置netzkejavascript代码(在带有参数的父类中定义js代码)
- 在配置中使用loadNetzkeComponent的参数
- 设置关于:火狐的配置参数
- 配置模板加载程序以传递额外的参数
- 过滤器 AngularJS REST JSON 数据:错误:badcfg 响应与配置的参数不匹配
- $routeProvider配置路由抛出'未捕获错误:[ng:areq]参数'fn'不是函数,得
- RequireJS:配置参数未传递到包中
- Webstorm-如何为javascript调试配置添加浏览器参数
- 硬币滑块jquery-->如何将100%width参数传递给它?似乎只允许图像的像素配置
- 为什么AngularJS请求拦截器中不提供所有请求头's配置参数
- 配置子组件函数,将多个参数传递给父函数
- AngularJS-将配置参数传递给指令
- 如何读取拦截器中的配置参数
- 是否有一个配置参数会导致Richfaces 3.3.3在DEV模式下运行(解包js)
- Meteor.js,Mongo:可以向用户插入新的文档或参数.来自客户端的配置文件
- 使用angular-ui-router配置参数
- 可以在骨干路由中配置参数