javascript - Angular2管道动态值不取

标签 javascript angular typescript ionic-framework ionic2

我有一个像这样的json

[{
  "id": 9156,
  "slug": "chicken-seekh-wrap",
  "type": "dish",
  "title": "Chicken Seekh Wrap",
  "cuisine_type": [2140]
},
{
  "id": 9150,
  "slug": "green-salad",
  "type": "dish",
  "title": "Green Salad",
  "cuisine_type": [2141]
}]

我创建了一个像这样的管道来按 angular2 中的美食类型进行过滤

@Pipe({
      name: 'filter',
      pure: false
 })
 export class FilterPipe implements PipeTransform {
     transform(items: any[], selectedId: any): any {
     if(selectedId === -1)
           return items;
    return items.filter(item => item.cuisine_type[0] === selectedId);

  }
 }

在 ionic View 中我像这样使用它

<ion-card *ngFor="let cat of selectedCats">
            <ion-card-header>
              {{cat}}
            </ion-card-header>
            <ion-card-content>
                <ion-list class="checkbox-list" *ngIf="dishes ?.length > 0">
                  <ion-item class="checkbox-item" *ngFor="let dish of dishes | filter:cat">

                    <ion-label>{{dish.title}}</ion-label>
                      <ion-checkbox [formControlName]="dish.id"></ion-checkbox>

                  </ion-item>
                </ion-list>
            </ion-card-content>
</ion-card>

当我使用管道值作为静态值时,就像它的工作一样

 <ion-item class="checkbox-item" *ngFor="let dish of dishes | filter:2140">

但是当我动态使用它时,它没有显示任何结果

<ion-item class="checkbox-item" *ngFor="let dish of dishes | filter:cat">

最佳答案

问题不是由 Angular 引起的,而是由您的代码引起的

item.cuisine_type[0] === selectedId

对可接受的值(value)观过于具体

item.cuisine_type[0] == selectedId 

通过在比较之前允许类型强制,更加宽容。

这意味着 cat 可能是一个字符串 '2140'item.cuisine_type[0] 一个数字。 如果您将其作为 | 传递filter:2140" 它作为数字传递并匹配 item.cuisine_type[0]

关于javascript - Angular2管道动态值不取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45051611/

相关文章:

angular - 如果 Angular2 HTTP 响应数据不符合类型,如何捕获错误

php - Angular 推送消息未显示

php - 如何在插入表单 jquery 代码的 div 上运行我的 jquery 代码?

javascript - 当用户滚动到 html5 视频时,如何开始播放它?

javascript - 如何正确创建 Angular 域模型

angular - 为什么异步验证器回调没有组件上下文?

typescript : How can I get input data from iFrame in ionic

javascript - 如何在node.js中向特定客户端发送消息

javascript - 从输入类型文件javascript下载文件

nested - 我可以创建嵌套的 Angular 组件 HTML 选择器吗?