5

angular アプリケーションで Cookie をクリアしようとすると、「$cookies.remove は関数ではありません」というエラーが表示されます。私が見ることができる限り、角度のあるドキュメントの内容と、このフォーラムで Cookie を削除するために言われたことに従っています。

これを処理する私のサービスは次のとおりです。

app.service('authService', function ($cookies) {

    this.SetUsername = function (username) {
        $cookies.username = username;
    }

    this.GetUsername = function () {
        return $cookies.username;
    }

    this.clearCookie = function(){
        $cookies.remove("username");

    }

});

get 関数と set 関数はどちらも正常に動作します。この問題が発生するのは、clear cookie 関数を呼び出すときに実際に cookie を削除しようとしたときだけです。

4

3 に答える 3

4

まず、Angular.js のどのバージョンを使用していますか? $cookies が実際には ngCookies プラグインから来ていることを意味する 1.3.x を使用しているようです。その場合、$cookies は単純なオブジェクトにすぎず、書き込みによって新しい Cookie 値が作成されます。1.3.x ngCookie ドキュメントから直接引用するには:

単純なオブジェクトのみが公開され、このオブジェクトにプロパティを追加または削除することで、現在の $eval の最後に新しい Cookie が作成または削除されます。オブジェクトのプロパティは文字列のみです。

ngCookies モジュールをインストールする必要があります。

1.4.x 以降を使用している場合、実装は実際には正しいでしょう。

于 2015-05-26T13:52:06.797 に答える
0

ログアウト中にこれを試してみると、一度にすべての Cookie がクリアされます

app.controller('controllername', function ($cookies) {
    $cookies.remove();})
于 2018-11-28T09:45:02.123 に答える