我是 Angular 的新手。开始研究测试项目。我想在cookie中存储用户身份验证。我已尽力做到这一点,但它会给我未定义的错误,每当我试图检索我的价值,既没有确认商店价值,也无法弄清楚出了什么问题?我一步一步地工作,并在 stackoverflow 上阅读了很多答案。感谢。
使用Angular 1.6.6
angular.module('LoginCtrl', ["ngCookies"])
.controller('LoginController', function($rootScope, $location, $scope,
$http, $cookies)
{
$scope.loginformData = {};
$scope.loginmessage='';
$scope.errorlogin=false;
$scope.loginUser = function()
{
Login.login($scope.loginformData)
.then(function(data)
{
$scope.loginmessage = data;
if(data!=='Wrong Email Or Password!')
{
$cookies.put('myFavorite', 'oatmeal');
var favoriteCookie = $cookies.get('myFavorite');
console.log(favoriteCookie); // return undefined
}
else
{
$scope.errorlogin = true;
console.log('Error');
}
});
};
});
<script src="https://code.angularjs.org/1.6.6/angular.js"></script>
<script src="https://code.angularjs.org/1.6.6/angular-cookies.js"></script>
<base href="/index.html"/>
<div ng-app="LoginCtrl">
<div ng-controller="LoginController">
</div>
</div>
答案 0 :(得分:0)
您需要将 <InfinityMenu
headerContent={Header}
headerProps={{ value: 'dummy' }}
emptyTreeComponent={EmptyComponent}
tree={this.state.categories}
onLeafMouseClick={this.onLeafMouseClick}
onNodeMouseClick={this.onNodeMouseClick} />
与版本1.4以上的版本一起使用
同样可以获取信息。
$cookies.putObject('myFavoritec', 'oatmeal');
答案 1 :(得分:0)
在详细分析 angular-cookies.js 之后,我逐行调试。我使用console.log()看到 cookiePath 。实际上cookie路径没有分配正确的值。
var cookiePath = $browser.baseHref();
console.log(cookiePath); // return /index.html
那是无效路径,这就是无法存储cookie的原因,路径应该是我项目的根目录
这个错误的路径是从我的索引文件生成的,其中我用“/index.html”设置了基本标记
<base href="/index.html">
然后我用root更改了基本标记,并且它可以工作。
<base href="/">
现在!它有效。