"setCookies" Durandal 单页应用程序中未定义函数
"setCookies" function not defined in Durandal single page app
我目前正在使用 Durandal 开发单页应用程序。
我有两个功能,其中一个用于 'save' 登录后的 Bearer 令牌,以便稍后进行 API 调用,另一个目的是在调用时检索所述 Bearer 令牌从应用中的不同页面(拨打电话)。
我创建了两个附加函数,用于设置 cookie 和检索 cookie。 'setCookies' 是 运行 同时 'setToken',而 'getCookies' 是 运行 同时 'getToken'。
我遇到的问题是我的浏览器正在返回 'Uncaught ReferenceError: setCookies is not defined'。
有人知道我做错了什么吗?代码如下:
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;
}
};
});
您必须使用 this.setCookies()
,而不仅仅是 setCookies()
。这是因为该函数存在于您要返回的同一个对象中。
这里this
指的是当前对象。在您的代码中,您使用了 this.bearerToken
。您必须以相同的方式调用 setCookies()
函数。
像这样改变方法
setToken: function (token) {
this.setCookies("Bearer", token);
this.bearerToken(token);
console.error(this.bearerToken());
},
我目前正在使用 Durandal 开发单页应用程序。
我有两个功能,其中一个用于 'save' 登录后的 Bearer 令牌,以便稍后进行 API 调用,另一个目的是在调用时检索所述 Bearer 令牌从应用中的不同页面(拨打电话)。
我创建了两个附加函数,用于设置 cookie 和检索 cookie。 'setCookies' 是 运行 同时 'setToken',而 'getCookies' 是 运行 同时 'getToken'。
我遇到的问题是我的浏览器正在返回 'Uncaught ReferenceError: setCookies is not defined'。
有人知道我做错了什么吗?代码如下:
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;
}
};
});
您必须使用 this.setCookies()
,而不仅仅是 setCookies()
。这是因为该函数存在于您要返回的同一个对象中。
这里this
指的是当前对象。在您的代码中,您使用了 this.bearerToken
。您必须以相同的方式调用 setCookies()
函数。
像这样改变方法
setToken: function (token) {
this.setCookies("Bearer", token);
this.bearerToken(token);
console.error(this.bearerToken());
},