丢失在 Angular 中的 iCheck 回调中分配的变量值



我是新手,所以要善良。

我在同一组件中有这两个函数。

第一个:

addCost() {
$(document).ready(function(){
(<any>$('input')).iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_minimal-grey'
});
$('#not2bpaid').on('ifChecked', () => {
this.not2bpaid_tosend = "N";
});
}

"ifChecked"回调中的这个变量赋值有效,我已经确定了这一点。

然后我有另一个函数,它在 html 中的点击事件上调用,它使用变量 not2bpaid_tosend。

addCost(( 在函数 at click 事件之前被调用,但到那时not2bpaid_tosend已经失去了它的值。

我还尝试在从 html 触发第二个函数时将not2bpaid_tosend作为参数传递给第二个函数。相同的结果。那时变量为空。 而且我在这两个函数之间的任何其他时间都不会触及该变量。

不知道这里发生了什么或如何解决它。可能是我忽略了一些简单的东西,因为正如我所说,我是这个角度的新手。

任何帮助将不胜感激。 谢谢

你必须使用箭头函数,同时将函数一个参数传递给jquery的ready函数,以保持组件类的上下文完整。

addCost() {
$(document).ready(() => {
(<any>$('input')).iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_minimal-grey'
});
$('#not2bpaid').on('ifChecked', () => {
this.not2bpaid_tosend = "N";
});
});
}

最新更新