假设我有以下代码:
<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
未传递给管道。
注意:这里使用管道的主要目的是获取除当前值之外的所有其他数组元素(例如在第一个循环中我希望获取除Software
之外的所有其他单词,并且在第二个循环中除了Engineering
之外的其他词语以及其他的相同内容。)
注意: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>
答案 0 :(得分:2)
如果您想使用管道修改单个项目,这应该是您想要的:
<ng-container *ngFor="let sterm of data?.search_term">
<a href="job_search_results.do?jkw=">{{sterm | getOtherSearchTerms}}</a>
</ng-container>
答案 1 :(得分: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;
}