Angular – pipe
pipe
pipe is filter for angular value(bind)
When the value is bound, change value using function or filter etc…
It’s easy to see sample
- String
- Date
- Currency
- Json
- Number
- Plural
- Select
- Slice
String
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<p>original : {{title}}</p>
<p>uppercase : {{title | uppercase}}</p>
<p>lowercase : {{title | lowercase}}</p>
<p>titlecase : {{title | titlecase}}</p>
`
})
export class GeneralPipeComponent {
title = 'Test Program';
}
First one is change string to Uppercase.
Others are also simple, lowercase, titlecase.
Date
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `<ul>
<li>No format : {{current}}</li>
<li>Format default : {{current | date}}</li>
<li>Format medium : {{current | date:'medium'}}</li>
<li>Format point : {{current | date:'y MM dd (EEE) '}}</li>
</ul>`
})
export class DateComponent {
current = new Date();
}
Currency
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `<ul>
<li>Default : {{price | currency}}</li>
<li>Code : {{price | currency: 'JPY'}}</li>
<li>Unit (Yen) {{ price | currency: 'JPY'}}</li>
<li>Unit (Euro) : {{price | currency: 'EUR':true }}</li>
<li>Fixdigit : {{price | currency: 'JPY': true: '1.0-1'}}</li>
</ul>`
})
export class CurrencyComponent {
price = 3500.125;
}
Json
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<pre>{{obj | json}}</pre>
`
})
export class JsonpipeComponent {
obj: any = {
name: 'Thunderman',
gender: undefined,
birthday: new Date(2000, 11, 12),
age: 18,
family: ['Ice', 'Fire'],
work: function() {},
other: {
favorite: 'Game',
memo: 'Crazy'
}
};
}
Number
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `<ul>
<li>Default : {{price | number}}</li>
<li>Point 2 : {{price | number: '5.0-2'}}</li>
<li>Integer : {{price | number: '1.0-0'}}</li>
</ul>`,
})
export class NumberPipeComponent {
price = 3500.1256;
}
Plural
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `<div>
{{favs.length | i18nPlural:messages}}
</div>`
})
export class PluralComponent {
favs = ['Takeshi Goda', 'Suneo Honekawa', 'Hidetoshi Dekisugi'];
messages = {
'=0': '[いいね!]されていません。',
'=1': '1人だけ[いいね!]と言ってくれています。',
'other': '# 人が[いいね!]と言っています。',
};
}
Select
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `<ul>
<li *ngFor="let m of members">
{{m.sex | i18nSelect : messages}} is {{m.name}}.
</li>
</ul>`
})
export class SelectPipeComponent {
members = [
{name: 'Riko Sakurauchi', sex: 'female'},
{name: 'Shiro Emiya', sex: 'male'},
{name: 'Mizuki Nakajima', sex: 'unknown'}
];
messages = {
'male': 'He',
'female': 'She',
'other': 'He/She'
};
}
Slice
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `<ul>
<li>{{str}}</li>
<li>{{str | slice: 3}}</li>
<li>{{str | slice: 3: 5}}</li>
<li>{{str | slice: 7}}</li>
<li>{{str | slice: -3}}</li>
<li>{{str | slice: -3: -2}}</li>
<li>{{str | slice: -10}}</li>
</ul>`
})
export class SliceComponent {
str = 'アイウエオはひ';
}
