2017-03-28 11 views
0

の前にコンパイル時にヘルパー関数を定義する方法はありますか?Angular2テンプレートmixinsとヘルパー

例えば、それはコンポーネントを作成するオーバーヘッドとパフォーマンスへの影響なし<icon>hamburguer</icon>しかしのようなものから<i class="icon icon-hamburger" aria-hidden="true"></i>を生成するためにいいだろう、私はちょうどそれがテンプレートのコンパイル前に変換する必要があります。

答えて

1

プロダクションでAOT(事前コンパイル)を使用することをお勧めします。これにより、コンポーネントの作成によるオーバーヘッドとパフォーマンスの影響が最小限に抑えられます。必要なものを手に入れるためには、動的なコンポーネントを作成する必要があります。実際にはこのプロセスに余分なオーバーヘッドが加わり、AOTでうまく動作しません。

速いディレクティブは次のようになります。

@Directive({ 
    selector: '[jmIcon]', 
    host: { 
    'attr.aria-hidden': 'true' 
    } 
}) 
export class IconDirective { 

    @Input() 
    public jmIcon: string; 

    @HostBinding('class') 
    public get classList(): string { 
     return 'icon icon-' + this.jmIcon; 
    } 

} 

この使用方法では:

<i jmIcon="hamburger"></i> 
+0

速いだろう何、完全なコンポーネントまたは<私は= "hamburguer" アイコン> 'のようなディレクティブを 'はクラスと' aria-hidden'属性を追加するだけですか? –

+0

これは性能が賢明ではないと思います。よりメンテナンス可能なコードで解決するかどうかを確認する方が良いでしょう。この例では、 '[jmIcon]'ディレクティブ(接頭辞を使うことをお勧めします)を作成する方が簡単だと思います。 – PierreDuc

関連する問題