似乎无法从AJAX中设置属性值。
以下是我的代码
function Captcha(userKey) {
var self = this;
this.key;
this.getCaptchaKey = function(userKey) {
$.post('/api/captcha/get-key',data, function(data, status,jqXHR) {
if(status) {
self.key = data.data.captchaKey;
}
},"json");
};
this.getCaptchaKey(userKey);
}
我将'this'设置为'self'以引用AJAX调用。
然后当我将console.log()这个对象本身放在对象外面时,它告诉我已经设置了值。
self.captcha = new Captcha(self.userKey);
self.captchaKey = self.captcha.key
console.log(self.captcha);
所以'self.captcha'返回带有从AJAX调用中设置的'key'的正确值的对象。
但是当我在console.log(self.captcha.key)时,它会显示'undefined'
我一直在谷歌搜索,但找不到答案。
答案 0 :(得分:1)
我认为您的问题是您将异步调用视为同步。您正在读取Ajax调用返回之前的值。