【发布时间】:2018-08-27 05:46:26
【问题描述】:
当用户尝试发送输入错误的表单时,我试图给他一个视觉反馈。因此,当他尝试发送包含错误的表单时,我想为输入字段设置动画。
ts文件中的动画:
trigger('error', [
transition('* => *', useAnimation(shake)),
]),
html文件中的表单:
<mat-form-field [@error]="error">
是否可以在每次用户尝试发送表单并且包含错误时触发此动画?
StackBlitz example (Updated with solution)
如您所见,摇动动画在开始时播放,然后不再播放。
解决方案:
从下面的答案中,我更改了设置 onAddErrAnim 变量的顺序。现在onAddErrAnim 首先设置为false,然后在setTimout 内调用if 语句,时间为0 毫秒。现在用户可以每毫秒调用一次onAdd(),动画就会播放到最后(如果没有触发新的动画)。
onAdd() {
this.onAddErrAnim = false;
setTimeout( () => {
if (this.myFormControl.invalid) {
this.onAddErrAnim = true;
return;
} else {
this.myArray.unshift([this.inputExample]);
}
}, 0 )
}
【问题讨论】:
标签: angular animation angular5 angular-forms angular-animations