如何在Angular 2

时间:2016-12-30 17:11:17

标签: angular angular2-pipe

 <tr *ngFor="let logDetails of logDetails | search : term" >

我有一个管道,我想在其中使用变量。我的Component中定义了相同的变量。如何将此值从Component传递给Pipe?

//Pipe Structure

transform(value, [term], newVal) {
  if (value == undefined && newVal == undefined) {
    return undefined;
  } else {
    return value.filter((item) => item.LogString.startsWith(term));
  }
}

//Component Structure

newVal(a) {
  this.newChildData = a;
  console.log(this.newChildData);
}

我想将Component的newChildData传递给Pipe的newVal

// HTML模板

1 个答案:

答案 0 :(得分:0)

要么在模板中使用管道并将新值传递给它。

<div>{{ yourValue | yourPipe: newChildData }}<div>

或者,由于Pipe只是一个Javascript类,您可以将其导入组件并使用它。

const pipe = new youPipe();
const result = pipe.transform(yourValue, newChildData);

但我不建议后者。

如果要以编程方式使用管道,请考虑将转换逻辑拆分为服务,然后在pipecomponent中导入并使用该服务。