采取此约束和声明
<input type="text" value.bind="houseNumber" keyup.delegate=" validation.validateField($event) & debounce:400"/>
这个viewModel
export class Test{
@observable houseNumber;
constructor(){
this.houseNumber = "";
}
houseNumberChanged(newValue, oldValue){
console.log('changed');
}
}
通常debounce
属性应该延迟更新绑定:http://aurelia.io/hub.html#/doc/article/aurelia/binding/latest/binding-binding-behaviors/3
但不知何故,当我使用@observable
装饰器时,此debounce
属性将被忽略。
我使用updateTrigger
<input type="text" value.bind="houseNumber & updateTrigger:'blur'" />
我是否仍然好奇是否有延迟与@observable装饰器的绑定以便不直接调用houseNumberChanged
函数?
答案 0 :(得分:2)
我会查看这篇博文。
https://www.danyow.net/aurelia-binding-behaviors/
它看起来像你实际的语法:
<input type="text" value.bind="houseNumber & debounce:400" />
或者如果您想要基于按键事件
<input type="text" keyup.delegate="houseNumberChanged($event) & debounce:400">
答案 1 :(得分:2)
你没有将辩护放在需要它的绑定上(value.bind="houseNumber & debounce"
)。如果你想去抖动绑定并且只触发keyup,那么你需要这个:
<input type="text" value.bind="houseNumber & debounce:500 & updateTrigger:'keyup'" />
我在这里创建了一个快速示例要点:https://gist.run/?id=2621b818abcf64c512a6da6d8c1dd1a4