我在使用 angular-js 时遇到问题
$locationProvider.html5Mode(true).hashPrefix('!');
路由一切正常,预计 $cookieStore 无法在 Controller $scope 中定义的函数下工作,可能是因为我添加了 .HTACCESS。
我找不到任何解决方案,现在使用“window.localStorage”这里任何人都有解决方案
我的示例代码如下:
HTML
<button type="button" class="btn btn-default" ng-click='doLogin()'>Sign in</button>
应用程序脚本
var app = angular.module('starter', ['ngRoute','ngCookies']);
app.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/dashboard', {
templateUrl: 'pages/dashboard.html',
controller: 'dashboardApp'
})
.otherwise({
redirectTo: '/',
templateUrl: 'pages/login.html',
controller: 'loginApp'
});
$locationProvider.html5Mode(true).hashPrefix('!');
})
app.controller('loginApp', function($scope , $cookieStore ) {
//This working fine
$cookieStore.put('Greet','Welcome to Angular!');
///////////////////////////////////
$scope.doLogin = function()
{
// Here no cookie has been setting up
$cookieStore.put('loggedin', true);
};
})
.HTACCESS
#BEGIN
Options +FollowSymLinks
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ index.html [L]
</ifModule>
#END
最佳答案
我现在遇到了这个问题。你的帖子给我指出了正确的问题。 我创建了一个 plnkr 来尝试重现,并注意到我能够在 $scope 方法中很好地执行 $cookieStore.put() 。 所以问题似乎出在源文件的验证上。我对 Angular.js 和 Angular-Cookies.js 使用 1.3.11,但对 Angular-route.js 使用 1.3.5。
解决方法是对 angular-route.js 使用 1.3.11 或您正在使用的相应版本。
关于javascript - Angular $cookieStore 无法在 Controller $scope 函数下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26448560/