javascript – ui路由器嵌套视图条件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – ui路由器嵌套视图条件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1788字,纯文字阅读大概需要3分钟。
内容图文
是否可以在具有条件的ui路由器中创建嵌套视图?
条件分配给用户角色.
例如,我有两种类型的用户:admin和user.
如果用户打开设置页面,则ui路由器仅添加此视图,该视图将分配给他的角色.
这是我的配置代码的示例
var app = angular.module('myApp', ['ui.router']);
app.config(function ($stateProvider, $urlRouterProvider){
$stateProvider
.state('home', {
url: '/home',
templateUrl: '/home.html',
controller: 'homeController'
})
.state('settings', {
url: '/settings',
data: {
roles: ['admin', 'moderator', 'user']
},
views:{
'':{
templateUrl:'/settings.html',
},
'piView@settings':{
data: {
roles: ['user']
},
templateUrl:'/personalInformation.html'
},
'permissionsView@settings':{//load this view if user is administrator
//I need some condition for this
data: {
roles: ['admin']
},
templateUrl: '/permissionsView.html'
}
},
controller: 'settingsController'
});
$urlRouterProvider.otherwise( function($injector) {
var $state = $injector.get("$state");
$state.go('/home');
});
});
解决方法:
将为每个用户(管理员或匿名用户)注入视图.但我们可以管理哪个视图.最好的方法是使用templateProvider.
基于此Q& A:
Confusing $locationChangeSuccess and $stateChangeStart
我使用上面的源头and adjusted it a bit的plunker
那么,让我们有这两个目标(在index.html内)
<div ui-view="onlyForAdmin"></div>
<div ui-view=""></div>
还有一个州公众,管理员将通过以下设置显示onlyForAdmin的内容:
.state('public', {
url: "/public",
data: { isPublic: true },
views: {
'@' : {
templateUrl: 'tpl.html',
data: { isPublic: true },
},
'onlyForAdmin@' : {
templateProvider: ['$templateRequest','userService',
function($templateRequest,userService)
{
if(userService.isAdmin())
{
return $templateRequest("justForAdmin.html");
}
return ""; // other than admin will see nothing
}
]
}
}
})
justForAdmin.html的内容(例如< h2>仅适用于admin< / h2>)只会注入一些授权服务,会将用户视为管理员…
检查它here
内容总结
以上是互联网集市为您收集整理的javascript – ui路由器嵌套视图条件全部内容,希望文章能够帮你解决javascript – ui路由器嵌套视图条件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。