問題タブ [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.
angular - Angular/RxJS 「サブスクリプション」をいつ解除する必要がありますか
ライフ サイクル中にインスタンスを保存してSubscription
呼び出す必要があるのはいつですか? また、単純にインスタンスを無視できるのはいつですか?unsubscribe()
ngOnDestroy
すべてのサブスクリプションを保存すると、コンポーネント コードに多くの混乱が生じます。
HTTP クライアント ガイドは、次のようなサブスクリプションを無視します。
同時に、Route & Navigation Guideは次のように述べています。
最終的には、別の場所に移動します。ルーターはこのコンポーネントを DOM から削除して破棄します。そうなる前に、自分たちで後片付けをする必要があります。具体的には、Angular がコンポーネントを破棄する前にサブスクライブを解除する必要があります。そうしないと、メモリ リークが発生する可能性があります。
Observable
メソッド内でサブスクライブを解除しますngOnDestroy
。
javascript - Angular4 でネストされた角度コンポーネントに '(change)' イベント バインディングを使用する
'(change)' は、input、select、および textarea フィールド用のビルド済みイベント バインダーであることを認識しています。しかし、コンポーネントへのイベント バインダーとして使用するとはどういう意味でしょうか?
コンポーネントの呼び出し:
ドロップダウン リスト コンポーネント内には、選択ボックスと、リストをフィルター処理するためのテキスト ボックスがあります。選択ボックスの値が選択されると、最終的に親コンポーネントの 'updateCCode' イベントを発生させる emit イベントを発生させます。
テキスト フィールドを編集してフォーカスを外すと、驚くことに「updateCCode」イベントが発生します。最終的に、回避策を得るために、コードを次のように変更する必要がありました。
私のイベントバインダー名は「(変更)」だったので、デフォルトの「onChange」イベントの発生を避けるために。
質問
これは正しいアプローチですか?コンポーネントに発行されたときに (変更) イベントエミッターが onChange ネイティブ関数をオーバーライドしないのはなぜですか? ある種の onchange リスナーを実装して、'preventDefault' を呼び出す必要がありますか?
angularjs - URLなしのAngularコンポーネント
私は AngularJS (v 1.6) にかなり慣れていないので、これはばかげた質問かもしれません。
アプリケーションのホームページで使用されるコンポーネントを作成しようとしています。データは渡されず、代わりに API 呼び出しを行います。
これまでの様子は次のとおりです。
基本的に、このコンポーネントはナビゲーション内のアプリケーションのホームページに存在します。私の問題は、oninit にある API サービスを呼び出すと、ページの読み込みに間に合うようにデータが返されないように見えることです。どんなアドバイスも素晴らしいでしょう。