我如何在 if 条件下使用 Angular focusout
how can i use Angular focusout with if condition
这是我的输入框
<input
(keyup.enter)="save()"
(focusout)="save()"
class="editinput custom_story_input"
type="text"
placeholder="Create a new one"
id="tbtfeild"
value="" [(ngModel)]="childTaskmodel.childtitle"
#childtitle="ngModel"
name="childtitle" />
从上面的输入字段,我对 enter 没有任何问题,如果该字段为空,它会显示错误消息
即将 聚焦 它应该只有在输入字段中存在任何数据时才有效我该怎么做..?
我想要这样的东西:
<input *ngIf (focusout)="childtitle.val != '' ? save() : '' " >
好吧,你可以做到:
<input [(ngModel)]="childtitle" (focusout)="childtitle ? save() : null">
测试它:除非您的输入有值,否则它不会工作。
编辑 解释:
您首先使用 [(ngModel)]="childtitle"
将您的变量绑定到输入:这允许您让 angular 知道他必须监视该变量的变化。
接下来,使用 (focusout)="childtitle ? save() : null"
将 HTML 事件绑定到此输入。作为一个值,您编写一个三元运算符:这是 if ... else ...
条件的单行代码。在那个三进制中,你声明如果这个输入有一个值(这是一个 truthy 值,一个 Javascript 概念,你会在互联网上找到更多),那么你可以运行 函数。如果没有,那么你只是 运行 null
,这...什么都不做。
在您的 save()
函数中,检查您的模型 childTaskmodel.childtitle
。如果它是空的,不要继续。如果您希望 keyup.enter
和 focusout 有不同的行为,只需在控制器中创建两个方法即可。
这是我的输入框
<input
(keyup.enter)="save()"
(focusout)="save()"
class="editinput custom_story_input"
type="text"
placeholder="Create a new one"
id="tbtfeild"
value="" [(ngModel)]="childTaskmodel.childtitle"
#childtitle="ngModel"
name="childtitle" />
从上面的输入字段,我对 enter 没有任何问题,如果该字段为空,它会显示错误消息
即将 聚焦 它应该只有在输入字段中存在任何数据时才有效我该怎么做..?
我想要这样的东西:
<input *ngIf (focusout)="childtitle.val != '' ? save() : '' " >
好吧,你可以做到:
<input [(ngModel)]="childtitle" (focusout)="childtitle ? save() : null">
测试它:除非您的输入有值,否则它不会工作。
编辑 解释:
您首先使用 [(ngModel)]="childtitle"
将您的变量绑定到输入:这允许您让 angular 知道他必须监视该变量的变化。
接下来,使用 (focusout)="childtitle ? save() : null"
将 HTML 事件绑定到此输入。作为一个值,您编写一个三元运算符:这是 if ... else ...
条件的单行代码。在那个三进制中,你声明如果这个输入有一个值(这是一个 truthy 值,一个 Javascript 概念,你会在互联网上找到更多),那么你可以运行 函数。如果没有,那么你只是 运行 null
,这...什么都不做。
在您的 save()
函数中,检查您的模型 childTaskmodel.childtitle
。如果它是空的,不要继续。如果您希望 keyup.enter
和 focusout 有不同的行为,只需在控制器中创建两个方法即可。