AngularJS:$ cookies.remove不是一个函数

use*_*039 5 cookies angularjs angular-cookies

尝试在我的角度应用程序中清除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");

    }

});
Run Code Online (Sandbox Code Playgroud)

get和set函数都可以正常工作,只是当我在调用clear cookie函数时实际尝试删除cookie时才遇到此问题。

Sar*_*rya 4

首先,您使用的是哪个版本的 Angular.js?对我来说,您似乎使用的是 1.3.x,这意味着 $cookies 实际上来自 ngCookies 插件。在这种情况下,$cookies只不过是一个简单的对象,写入时会创建一个新的cookie值。直接引用1.3.x ngCookie文档:

仅公开一个简单的对象,并且通过向该对象添加或从中删除属性,可以在当前 $eval 的末尾创建/删除新的 cookie。对象的属性只能是字符串。

需要安装 ngCookies 模块。

如果您使用 1.4.x 及更高版本,您的实现实际上是正确的。