angular.module('cookiesExample',
['ngCookies'])
.controller('ExampleController',
['$cookies',
function($cookies)
{
//
Find
tomorrow's
date.
var
expireDate
=
new
Date()
expireDate.setDate(expireDate.getDate()
+
1)
//
Setting
a
cookie
$cookies.put('myFavorite',
'oatmeal',
{'expires':
expireDate})
}])
访问Cookies服务在angular中是受限制的.
你只能通过原生的javascript来设置
document.cookie = "someCookieName=true expires=Fri, 31 Dec 9999 23:59:59 GMT path=/"其实在ng中做页面访问权有很多种方法,各有利弊,运用的比较多的是拦截器,拦截器使得在前端往后端发送http请求之前或之后做一些 *** 作,比如全局监测用户是否登录,没登陆就要跳转的登录页面,登录就可以访问页面;拦截器的使用往往配合后台数据,也就是获取到最新的‘标示',来确定这个页面或者下个页面要做什么 *** 作;而这里我使用的是一种用前端控制的方式,不用数据交互,理念就是定义好不同等级/阶段可以访问的页面,在路由的地方作拦截,针对一些不同等级/阶段访问权限定义明确的可以参考使用这种方法,代码如下:......
app.run(['$rootScope', '$state', '$window', function($rootScope, $state, $window) {
$rootScope.$on('$stateChangeStart', function(event, toState, toStateParams) {
//用户访问等级阶段, 0 1 2
Array.prototype.contains = function(needle) {
for(i in this) {
if(this[i] == needle) return true
}
return false
}
var status=new Array("user.a","user.b","user.c","user.d","user.e","user.f","user.g")
var status0=new Array("user.a","user.b")
var status1=new Array("user.c","user.d")
var status2=new Array("user.a","user.b","user.c","user.d")
if (status.contains(toState.name)) {
if(initObj.getStatus()=="0"){
if(!status0.contains(toState.name)){
event.preventDefault()
$state.go('user.approve')
}
return
}
if(initObj.getStatus()=="1"){
if(!status1.contains(toState.name)){
event.preventDefault()
$state.go('user.result')
}
return
}
if(initObj.getStatus()=="2"){
if(!status2.contains(toState.name)){
event.preventDefault()
$state.go('user.result')
}
return
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)