我在使用angular-js时遇到问题
$locationProvider.html5Mode(true).hashPrefix('!');
一切都能正常工作,可能是$ cookieStore在控制器$ 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。
解决方法是将1.3.11用于angular-route.js或您正在使用的相应版本。