この素晴らしきフロントエンドに祝福を

アニヲタからフロントエンドエンジニアへ転身した私の備忘録。

angular2入門【パイプ編】

前回はコンポーネントの追加について、
お話しました。

https://www.evernote.com/l/AS2jE5iaf9JCpYIXWZvcDpVqxgiurMK-5PYB/image.png

ひな〜〜おいたんはゼットンだよ〜 本日はパイプを使ってみるよ〜

組み込みパイプ

https://www.evernote.com/l/AS2pLGHPyZNKm5rUi5bJazPXodRYxC-5v7wB/image.png

パイプとは何かと言いますと
文字列や数字を整形する機能、とでも言いましょうか。
実際に使って見せた方が早いので
やってみます。

ng newしたところからスタート。
コンポーネントは1ファイルにまとめてますが
構造は変わってません。
app-rootの中身はこんな感じ。

https://www.evernote.com/l/AS3VRC7AXjlJkLbMhu4mr3-lhPmk8LrFspgB/image.png

そして画面は

https://www.evernote.com/l/AS1eZx_V-EhLo6xJBJe44BL_37nRTVDXUp8B/image.png

超デフォルトです。
これにパイプをくわえて見ましょう。
そーい!

https://www.evernote.com/l/AS13M9oLFVFM-ZZ5ynfrWjUR6wM3yheJ8d4B/image.png

変数titleの右に変なものがつきましたねぇ。
これがパイプってやつです。
それで画面がどうなったかというとー

https://www.evernote.com/l/AS3r0C1ru2JA34ewyKa4yv2wa7NnVUfUpR4B/image.png

おわかりいただけただろうか。
app works!がAPP WORKS!になりました。
これがUpperCaseパイプの機能です。
angular2にデフォルトで組み込まれている機能なので、
特に何もインポートしなくても使えます。

組み込みのパイプは他にも色々あります。
例えば〜の話をするために、
app-rootを再び書き変えちゃいます。

https://www.evernote.com/l/AS22DaYOmwFOOZAU3noyxu6YYrHumpz3nzUB/image.png

変数todayに今日の日付のDate型オブジェクトを入れて
画面に出してみました。
これがどんな風に見えるのかというと

https://www.evernote.com/l/AS0Yy80LG0xNBoPl0CxNCOPZHElm4BgFJiIB/image.png

長い!
情報が多くてよくわからん。
まあDate型のオブジェクトをそのまま
出したらこうなりますよね。
普通は年月日をそれぞれ取り出して連結する手間を
加えてから画面に出すかと思います。
ですが、パイプを使うと簡単にいい感じに
整形できます。こんな感じ。

f:id:zetton110:20161007004759p:plain

やってることはこれだけ。

https://www.evernote.com/l/AS3pHctamz1PZpTTeCHSUOmwp8Dm2Usnsm8B/image.png

これがDateパイプです。
他にも組み込みのパイプは色々あります。

https://www.evernote.com/l/AS3RZ930SQlLzIvjLqgIjEpdrjQn3QIV4GMB/image.png

詳しくは公式ドキュメントをご覧あれ。

angular.io

パイプは単独でも使えますが、 複数のパイプを組み合わせることもできます。 例えばこんな感じ。

https://www.evernote.com/l/AS1j_E-2lPtK37KkE4LSbhQIM3ucZAnHeF0B/image.png

これで画面がどうなってるのかというと

https://www.evernote.com/l/AS0h8ffSLuxND7P5uAyU4SWlv2ZCxkrHx8sB/image.png

おわかりいただけただろうか・・・ 地味にNovがNOVに変わりました。 Dateパイプで書式が変換されたものを 更にuppercaseパイプで大文字に変換したんですね。 これは便利、色々使えそうです。

組み合わせて使う以外にも、 オプションをつけて使うということもできます。 例えば先ほどのdateパイプにオプションをつけてみます。 こんな感じ。

https://www.evernote.com/l/AS17L9HCG_RER55QdvKA8oNPRMxVCQ3A8C8B/image.png

なんとなくどうなるか想像できますね〜
こうなります。

https://www.evernote.com/l/AS2QvwK_oDdG5p5EcYeUBUyC0fAsj9J7IboB/image.png

くうぅぅぅぅぅぅかわいいーー!!!!!
ってダメでしょ、ひな!!
画面はこっちです。

https://www.evernote.com/l/AS2DsM50khNAHLZAtko7BCcpxctUoKf9mssB/image.png

やっぱりね!
こうなるよね!!
今日はもう一つだけパイプにオプションをつけた例を
紹介して終わりにしましょう。

app-rootを書き換えて〜
ひなのことを考えてたら
次のような実装になっちゃいました。

https://www.evernote.com/l/AS1jb7kCm6RGUp7SUirlAemQuU7kxtCy_woB/image.png

画面はこんな感じ。

https://www.evernote.com/l/AS35rZ3n5vlGYbM6vYGw92mSSnihxfIyP78B/image.png

ここにSliceパイプをオプション付きで加えてみます。
ほいっ!!

https://www.evernote.com/l/AS1cNiBQIrFHWoG53vc9T3yBEt3ObD3AL2gB/image.png

そして画面は!

https://www.evernote.com/l/AS0-UHhhu-BF1JvAYdi5xBOQjQ9DB78LV4kB/image.png

https://www.evernote.com/l/AS2QvwK_oDdG5p5EcYeUBUyC0fAsj9J7IboB/image.png

次回はカスタムパイプだお!!