gpt4 book ai didi

javascript - Iron 验证行为中验证函数回调的范围问题

转载 作者:行者123 更新时间:2023-12-01 02:23:40 26 4
gpt4 key购买 nike

polymer 1.*

在父元素中,我使用Polymer.IronValidatableBehavior

我的回调函数 arg this.setInvalidStates 存在范围问题。在子元素 birthdate 中,回调在函数 checkIfDateHasValue: function(setInvalidStates) { }

中显示 undefined

有没有办法修复范围,以便我可以传入函数 this.setInvalidStates 作为回调?

父元素:

  setInvalidStates: function() {
...
},

validate: function() {
if (this.required) {
return this.$.birthdate
.checkIfDateHasValue(this.setInvalidStates).bind(this);
}

return true;
},

生日子元素:

checkIfDateHasValue: function(setInvalidStates) {
if (!this.$.datePicker.value) {
setInvalidStates(true);

this.errorMessage = '*birth date required under certain '
+ 'choices';

return false;
}

return true;
},

最佳答案

当然,您应该使用bind,但应用于参数:

.checkIfDateHasValue(this.setInvalidStates.bind(this))

您不需要原始的外部 bind(this),因为 checkIfDateHasValue 不返回函数,而是返回 bool 值。另外 validate 不应该返回函数,而是返回 bool 值,因此 bind 没有意义(在原始位置)。

关于javascript - Iron 验证行为中验证函数回调的范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48993966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com