我正在尝试实现li
组件文本验证中的input
。基本上当用户键入文本时,它被发送到后端并检查(如果输入有效则返回)。如果有效,用户可以发布它。
<li *ngFor="let value of values" [ngClass]="{'danger': !isValid}">
<input [value]="value.title" (keyup)="onTitleChange($event)"/>
<button [ngClass]="{'disabled': !isValid}">Post</button>
</li>
我想做的是检查输入值,并基于它放置类、li 和按钮组件。每个输入值都独立于其他 li 分量。
我试图通过使用表单来实现这一点,但这不是我正在寻找的解决方案,或者我可能以错误的方式实现它。你有什么建议吗?
你不应该有共同的isValid
组件属性,如果你改变它一次,它将应用于所有li
元素。
这就是你如何实现你正在尝试的事情。
values
中的每个value
对象都应该有一个属性isValid
您可以在onTitleChange
方法中将其设置为 false/true,请确保将value
作为参数传递给onTitleChange
。
这是代码更改,如果您需要更多解释,请告诉我。
.HTML
<li *ngFor="let value of values" [ngClass]="{'danger': !value.isValid}">
<input [value]="value.title" (keyup)="onTitleChange(value)"/>
<button [ngClass]="{'disabled': !value.isValid}">Post</button>
</li>
TS
onTitleChange(value:any) {
//based on your http response set isValid property to true or false.(setting false for now)
value.isValid = false;
}