每次加载单页应用程序都在检索cookie
Retrieving cookie with every load of Single Page App
需要对下面的AngularJS代码进行哪些具体更改,以在每次加载页面时检查是否存在名为myCookie
的cookie,然后将$rootScope.myCookieValue
变量设置为myCookie
的值
代码来自示例应用程序,您可以在此链接中查看其完整代码。这是一个非常简单的示例应用程序,我只想要一个简单的工作解决方案,这样我就可以从中构建更复杂的方法
angular.module('hello', [ 'ngRoute' ]).config(function($routeProvider, $httpProvider) {
$routeProvider.when('/', {
templateUrl : 'home.html',
controller : 'home',
controllerAs : 'controller'
}).otherwise('/');
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
$httpProvider.defaults.headers.common['Accept'] = 'application/json';
}).controller('navigation',
function($rootScope, $http, $location, $route) {
var self = this;
self.tab = function(route) {
return $route.current && route === $route.current.controller;
};
$http.get('user').then(function(response) {
if (response.data.name) {
$rootScope.authenticated = true;
} else {
$rootScope.authenticated = false;
}
}, function() {
$rootScope.authenticated = false;
});
self.credentials = {};
self.logout = function() {
$http.post('logout', {}).finally(function() {
$rootScope.authenticated = false;
$location.path("/");
});
}
}).controller('home', function($http) {
var self = this;
$http.get('resource/').then(function(response) {
self.greeting = response.data;
})
});
我想你可以在运行块中完成:
angular.module('hello', ['ngCookies', 'ngRoute'])
.config(function ($routeProvider, $httpProvider) {
$routeProvider.when('/', {
templateUrl: 'home.html',
controller: 'home',
controllerAs: 'controller'
}).otherwise('/');
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
$httpProvider.defaults.headers.common['Accept'] = 'application/json';
}).run(function ($rootScope, $cookies) {
var cookieValue = $cookies.get("myCookie");
if (cookieValue) {
$rootScope.myCookieVar = cookieValue;
}
}).controller('navigation',
function ($rootScope, $http, $location, $route) {
var self = this;
self.tab = function (route) {
return $route.current && route === $route.current.controller;
};
$http.get('user').then(function (response) {
if (response.data.name) {
$rootScope.authenticated = true;
} else {
$rootScope.authenticated = false;
}
}, function () {
$rootScope.authenticated = false;
});
self.credentials = {};
self.logout = function () {
$http.post('logout', {}).finally(function () {
$rootScope.authenticated = false;
$location.path("/");
});
}
}).controller('home', function ($http) {
var self = this;
$http.get('resource/').then(function (response) {
self.greeting = response.data;
})
});
我认为你应该使用角度版本>1.4.x
您还应该添加参考angular-cookies.js
相关文章:
- 用于存储、检索和附加到url的javascript cookie
- 检索cookie并以javascript形式放置
- 将数据URI保存在cookie中,以便稍后检索
- 如何使用 Jquery JS Cookie 检索 Cookie 值
- 在 JavaScript 中设置和检索 cookie
- 无法使用 SDK v5 检索 facebook cookie
- 从另一个 HTML 页面检索 cookie - 基于链接的选项选择
- 检索 Cookie 以设置背景图像
- 如何存储拖动&将项目放入cookie,然后在另一个页面中检索
- 正在从Cookie中检索JSON
- 不能正确检索cookie值从html(js)到php文件
- 在cookie中存储/检索Javascript文件对象
- 通过cookie传递javascript变量到另一个页面,并使用php检索
- Javascript:检索特定站点的cookie
- 检索JSP页面的javascript代码中的cookie
- javascript/jQuery在cookie中存储对象并检索
- 在JavaScript或jquery中从另一个页面检索cookie值
- 如何检索cookie的值
- 在MVC控制器中检索Cookie
- 每次加载单页应用程序都在检索cookie