1

angular-jsを使用しているときに問題に直面しています

$locationProvider.html5Mode(true).hashPrefix('!');

すべてがルーティングで正常に動作します。コントローラーの $scope で定義された関数の下で $cookieStore が機能しないことを期待してください。追加した .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
4

1 に答える 1

0

私は今この問題に遭遇しました。あなたの投稿は私に正しい問題を指摘しました。plnkr を作成して再現しようとしたところ、$scope メソッド内で $cookieStore.put() を問題なく実行できることに気付きました。そのため、問題はソース ファイルの検証にあるようです。angular.js と angular-cookies.js には 1.3.11 を使用していましたが、angular-route.js には 1.3.5 を使用していました。

修正は、angular-route.js または使用している対応するバージョンに 1.3.11 を使用することでした。

于 2015-02-04T14:03:19.200 に答える