在另一个闭包内的 setTimeout 内无法识别数据
Data is not recognised inside setTimeout inside another closure
我有我的数据,我正在尝试在 setTimeout 内的初始化程序中访问它。
data() {
return { val: {} }
},
methods: {
test() {
console.log(this.val) // works
var self = this
setTimeout(function() {
console.log(this.val) // works
var check = this.myMethod()
$.validate({
onError: function($form) {
console.log(self.val) // doesn't work
}
})
}, 500)
},
myMethod() {
// some stuff
return true
}
}
这是更新后的代码。使用 var self = this
方法,我现在很兴奋:
Uncaught TypeError: this.myMethod is not a function
methods: {
test() {
console.log(this.val) // works
// for this -> self trick
let self = this;
setTimeout(function() {
console.log(self.val) // works
$.validate({
onError: function($form) {
console.log(self.val) // doesn't work
}
})
}, 500)
}
}
data() {
return { val: {} }
},
methods: {
test() {
console.log(this.val) // works
var self = this;
setTimeout(function() {
console.log(self.val) // works
$.validate({
onError: function($form) {
console.log(self.val) // doesn't work
}
})
}, 500)
}
}
试试这个。在函数内调用函数时,您经常会丢失 this 的值,因此我们将 this 存储在一个变量中,以便可以从嵌套函数访问它。
我有我的数据,我正在尝试在 setTimeout 内的初始化程序中访问它。
data() {
return { val: {} }
},
methods: {
test() {
console.log(this.val) // works
var self = this
setTimeout(function() {
console.log(this.val) // works
var check = this.myMethod()
$.validate({
onError: function($form) {
console.log(self.val) // doesn't work
}
})
}, 500)
},
myMethod() {
// some stuff
return true
}
}
这是更新后的代码。使用 var self = this
方法,我现在很兴奋:
Uncaught TypeError: this.myMethod is not a function
methods: {
test() {
console.log(this.val) // works
// for this -> self trick
let self = this;
setTimeout(function() {
console.log(self.val) // works
$.validate({
onError: function($form) {
console.log(self.val) // doesn't work
}
})
}, 500)
}
}
data() {
return { val: {} }
},
methods: {
test() {
console.log(this.val) // works
var self = this;
setTimeout(function() {
console.log(self.val) // works
$.validate({
onError: function($form) {
console.log(self.val) // doesn't work
}
})
}, 500)
}
}
试试这个。在函数内调用函数时,您经常会丢失 this 的值,因此我们将 this 存储在一个变量中,以便可以从嵌套函数访问它。