1

假设我有以下代码:

<a *ngFor="let sterm; of data?.search_term | getOtherSearchTerms: sterm" href="job_search_results.do?jkw=">{{sterm}}</a>

这是我的管道:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'getOtherSearchTerms'
})

export class SearchTermPipe implements PipeTransform {
  otherSearchTerms;

  transform(searchTermArray: Array<any>, currentTerm: any): any {
    console.log(searchTermArray);
    console.log(currentTerm);
    return searchTermArray;
  }
}

日志是这样的:在此处输入图像描述

如您所见sterm,没有传递给管道。

注意:在这里使用管道的主要目标是获取除当前值之外的所有其他数组元素(例如,在第一个循环中,我想获取数组中的所有其他单词 except Software,而在第二个循环中,所有其他单词 exceptEngineering和 else 相同.)

注意:sterm应该Software在第一次迭代和Engineering第二次迭代。

我想创造一些这样的想法:

想要为<a>数组内的每个关键字创建标签,但将所有其他单词作为查询字符串传递给a标签。例如:

<a href="job_search_results.do?jkw=engineering+keyword2">Software</a>
<a href="job_search_results.do?jkw=software+keyword2">Engineering</a>
<a href="job_search_results.do?jkw=software+engineering">Keyword2</a>
4

2 回答 2

2

如果您想使用管道修改单个项目,这应该可以满足您的要求:

<ng-container *ngFor="let sterm of data?.search_term">
  <a href="job_search_results.do?jkw=">{{sterm | getOtherSearchTerms}}</a>
</ng-container>
于 2017-04-05T06:29:44.963 回答
0

这样做:

 <ng-container *ngFor="let sterm of data?.search_term">
   <a [href]="sterm | getOtherSearchTerms:data?.search_term">{{ sterm }}</a>
 </ng-container>

并将您的更改pipe为:

transform(currentTerm: any, searchTermArray: Array<any>): any {
   return 'job_search_results.do?jkw='+searchTermArray;
}
于 2017-04-05T07:24:34.877 回答