在 Angular 中丢失在 iCheck 回调中分配的变量值
Losing variable value assigned in iCheck callback in Angular
我是新手,所以请多关照。
我在同一个 component.ts
中得到了这两个函数
第一个:
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() 在点击事件的函数之前被调用,但到那时 not2bpaid_tosend 已经失去了它的价值。
我也试过在从 html 触发时将 not2bpaid_tosend 作为参数传递给第二个函数。同样的结果。那时变量为空。
而且我不会在这两个函数之间的任何其他时间触及该变量。
不确定这里发生了什么或如何解决它。可能是我忽略了一些简单的事情,因为正如我所说,我是这个 angular 的新手。
如有任何帮助,我们将不胜感激。
谢谢
您必须在将参数传递给 jquery 的就绪函数时使用箭头函数,以保持组件 class 的上下文完整无缺。
addCost() {
$(document).ready(() => {
(<any>$('input')).iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_minimal-grey'
});
$('#not2bpaid').on('ifChecked', () => {
this.not2bpaid_tosend = "N";
});
});
}
我是新手,所以请多关照。
我在同一个 component.ts
中得到了这两个函数第一个:
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() 在点击事件的函数之前被调用,但到那时 not2bpaid_tosend 已经失去了它的价值。
我也试过在从 html 触发时将 not2bpaid_tosend 作为参数传递给第二个函数。同样的结果。那时变量为空。 而且我不会在这两个函数之间的任何其他时间触及该变量。
不确定这里发生了什么或如何解决它。可能是我忽略了一些简单的事情,因为正如我所说,我是这个 angular 的新手。
如有任何帮助,我们将不胜感激。 谢谢
您必须在将参数传递给 jquery 的就绪函数时使用箭头函数,以保持组件 class 的上下文完整无缺。
addCost() {
$(document).ready(() => {
(<any>$('input')).iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_minimal-grey'
});
$('#not2bpaid').on('ifChecked', () => {
this.not2bpaid_tosend = "N";
});
});
}