2017-11-17 8 views
0

を呼び出します()関数は、すべてのブラウザで同じ日付を持つ必要があります。 (私は異なるブラウザが異なるDate()を評価するので、私は矛盾していました。)とにかく、これは動作します。しかし、stringAsDate()はすべての変更検出(clickなど)ごとに呼び出されているので、アプリケーションのパフォーマンスは本当に悪いです。チェンジ検出機能、私はすべてのこのような何かを見て、私の角度アプリケーション全体の日付持って何回も

stringAsDate()が何回も呼び出されるのを避ける方法はありますか? Angular4で

+0

テンプレートのような関数を呼び出さないことをお勧めします。この変数をテンプレートに渡す前にコンポーネント内で行うこともできますし、純粋な 'パイプ'を作成することもできます。 Btw、これは '* ngFor'の中にありますか? – developer033

+0

[OnPush](https://angular-2-training-book.rangle.io/handout/change-detection/change_detection_strategy_onpush.html)の検出戦略を変更しましたか?パフォーマンスを向上させることになっていますが、慎重に実装する必要もあります。これは危険領域です。 OnPush戦略を使用すると、変更検出がいつどこで検出され、どこのコンポーネントを変更するかを確認する必要がなくなります。 – Andresson

答えて

0

は、あなたが(中括弧内)プロパティとしてテンプレートにその関数を参照することができますように、その名前の前に関数宣言でキーワードを取得を置きます。

+0

次に、エラー "A 'を取得します。アクセサーにはパラメータがありません。" –

+0

@KevinQuiring、その後、私はあなたにリファクタリングを行うことをお勧めします。 dateStrパラメータをコンポーネントクラスに移動し、コンポーネントの構築時またはngOnInitメソッドで一度初期化できますか? –

関連する問題