我目前正在使用Durandal开发单页应用程序。
我有两个功能,其中一个用于登录后“保存” Bearer令牌,以便以后进行API调用,另一个功能是从应用程序的不同页面调用时检索所述Bearer令牌(打电话)。
我创建了两个附加功能,用于设置cookie和检索cookie。 “ setCookies”与“ setToken”同时运行,而“ getCookies”与“ getToken”同时运行。
我遇到的问题是我的浏览器返回“未捕获的ReferenceError:未定义setCookies”。
有人知道我在做什么错吗?下面的代码:
define(['durandal/app', 'knockout'], function (app, ko) {
return {
bearerToken: ko.observable(),
getToken: function () {
this.bearerToken(getcookies());
return this.bearerToken();
},
setToken: function (token) {
setCookies("Bearer", token);
this.bearerToken(token);
console.error(this.bearerToken());
},
getCookies: function (cookieName) {
var v = document.cookie.match('(^|;) ?' + cookieName + '=([^;]*)(;|$)');
return v ? v[2] : null;
},
setCookies: function (cookieName, cookieValue) {
document.cookie = cookieName + "=" + cookieValue;
}
};
});
答案 0 :(得分:0)
您必须使用setCookies()
,而不仅仅是this
。这是因为该函数存在于您要返回的同一对象内。
此处this.bearerToken
引用当前对象。在代码中,您使用了setCookies()
。您必须以相同的方式调用setToken: function (token) {
this.setCookies("Bearer", token);
this.bearerToken(token);
console.error(this.bearerToken());
},
函数。
更改这种方法
removeUI()