管道。组件注入Angular 2中的组件

时间:2016-09-20 10:48:55

标签: angular

在Angular2 RC.4中,我可以为每个组件注入组件和管道。

@Component({
  pipes: [ ToShortTime, ToTimeZone],
  directives: [Restaurant, Spinner]
})

如何在Angular2的发布版本中执行此操作。 (例如,只在一个组件中注入一些管道,而不是在NgModule中使用“声明”。

3 个答案:

答案 0 :(得分:1)

不可能!

您可以创建一个仅包含该组件的模块..

答案 1 :(得分:1)

我做了同样的事情(我从rc4迁移到最终版本);所以我创建了自己的微调器组件(spinner.component)。

1)在app.module中:

我在声明中导入了SpinnerComponent,在提供者中导入了SpinnerService。

2)在app.component.html中:

我在<spinner-component></spinner-component>

之前或之后添加了router-outlet

3)在login.component:

我导入了SpinnerService(并在构造函数中设置声明)

最后我使用这个服务每个http请求/响应

答案 2 :(得分:0)

我不确定是否可以从模板方面进行。但我确信它可以通过JavaScript(来自Component的类)。

Plunker:http://plnkr.co/edit/EDWfnnhe4NYsewpOoFhP?p=preview

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

class LengthPipe implements PipeTransform {
  transform(value: string, displayMessage: boolean): string {
    return displayMessage ? `${value} ${value.length}` : `${value.length}`
  }
}

@Component({
  selector: 'my-app',
  template: '<h1>My First Angular 2 App</h1><p>{{title}}</p><button (click)="doPipe()">Call Pipe</button>'
})
export class AppComponent { 
  title: String = 'Title';
  doPipe() {
    let f = new LengthPipe();
    this.title = f.transform(this.title,true)
  }
}