javascript – Angular 2:根据条件切换布尔值

我有一个搜索栏,我想在输入值长度为2或更长时显示所有过滤的名称.

我设法从输入字段中获取value.length.现在我被卡住了.
起初我做了:

if (value.length >= 2){
  showNames: true;
} 

默认showNames为false.当长度为2或更高时,它设置为true.所以,那是有效的.只有当用户擦除文本时,value.length再次低于2,布尔值才会再次变为false.我试过了,但我知道在Angular 2中不正确.

<ion-searchbar (ionInput)="getNames($event)"></ion-searchbar>
<ion-list *ngIf="showNames">
   <ion-item *ngFor="let name of names">
     {{ name }}
   </ion-item>
</ion-list>

我知道我可以通过按钮点击来切换布尔值,但我只想从值的长度切换它.

* ngIf =“value.length> = 2”也不起作用,因为我在我的Typescript中创建变量’value’.所以在我的HTML中它没有定义.而且我不想使用大公式计算长度,这就是我创建变量的原因.

我怎么能

>将我的Typescript中的变量’value’传递给我的HTML,这样我就可以使用* ngIf =“value.length> 2”了?
>或者在我的Typescript中做一些If / Else,所以我可以在我的HTML中使用像* ngIf =“showNames”这样的单个布尔值?

解决方法:

您可以像这样绑定到搜索栏的模型:

<ion-searchbar [(ngModel)]="searchValue" (ionInput)="getNames($event)"></ion-searchbar>
<ion-list *ngIf="searchValue.length >= 2">
   <ion-item *ngFor="let name of names">
     {{ name }}
   </ion-item>
</ion-list>

并在您的组件中定义这样一个变量:

export class ComponentA {
    searchValue: string = "";

    // ...
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐