問題タブ [angular-component-life-cycle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
26 に答える
293840 参照

angular - Angular/RxJS 「サブスクリプション」をいつ解除する必要がありますか

ライフ サイクル中にインスタンスを保存してSubscription呼び出す必要があるのはいつですか? また、単純にインスタンスを無視できるのはいつですか?unsubscribe()ngOnDestroy

すべてのサブスクリプションを保存すると、コンポーネント コードに多くの混乱が生じます。

HTTP クライアント ガイドは、次のようなサブスクリプションを無視します。

同時に、Route & Navigation Guideは次のように述べています。

最終的には、別の場所に移動します。ルーターはこのコンポーネントを DOM から削除して破棄します。そうなる前に、自分たちで後片付けをする必要があります。具体的には、Angular がコンポーネントを破棄する前にサブスクライブを解除する必要があります。そうしないと、メモリ リークが発生する可能性があります。

Observableメソッド内でサブスクライブを解除しますngOnDestroy

0 投票する
0 に答える
948 参照

javascript - Angular4 でネストされた角度コンポーネントに '(change)' イベント バインディングを使用する

'(change)' は、input、select、および textarea フィールド用のビルド済みイベント バインダーであることを認識しています。しかし、コンポーネントへのイベント バインダーとして使用するとはどういう意味でしょうか?

コンポーネントの呼び出し:

ドロップダウン リスト コンポーネント内には、選択ボックスと、リストをフィルター処理するためのテキスト ボックスがあります。選択ボックスの値が選択されると、最終的に親コンポーネントの 'updateCCode' イベントを発生させる emit イベントを発生させます。

テキスト フィールドを編集してフォーカスを外すと、驚くことに「updateCCode」イベントが発生します。最終的に、回避策を得るために、コードを次のように変更する必要がありました。

私のイベントバインダー名は「(変更)」だったので、デフォルトの「onChange」イベントの発生を避けるために。

質問

これは正しいアプローチですか?コンポーネントに発行されたときに (変更) イベントエミッターが onChange ネイティブ関数をオーバーライドしないのはなぜですか? ある種の onchange リスナーを実装して、'preventDefault' を呼び出す必要がありますか?

0 投票する
1 に答える
31 参照

angularjs - URLなしのAngularコンポーネント

私は AngularJS (v 1.6) にかなり慣れていないので、これはばかげた質問かもしれません。

アプリケーションのホームページで使用されるコンポーネントを作成しようとしています。データは渡されず、代わりに API 呼び出しを行います。

これまでの様子は次のとおりです。

基本的に、このコンポーネントはナビゲーション内のアプリケーションのホームページに存在します。私の問題は、oninit にある API サービスを呼び出すと、ページの読み込みに間に合うようにデータが返されないように見えることです。どんなアドバイスも素晴らしいでしょう。