コンポーネントからモーダルイベントをトリガーするためのベストプラクティス

学ぼうとしている

最近、Angular5を試していますが、他のコンポーネントでイベントをトリガーするためのベストプラクティスを知りたいです。

これが今の私のアプリケーション構造です:

index.html

<main-app></main-app>

app.component.html

<main-navbar></main-navbar>
<router-outlet></router-outlet>

<auth-modal></auth-modal>   

authモーダルコンポーネント

import { Component, EventEmitter } from '@angular/core';

@Component({
    selector: 'auth-modal',
    templateUrl: 'modal.component.html'
})

export class AuthModal {
    hidden: boolean = true;

    closed: EventEmitter<any> = new EventEmitter();

    close(event: KeyboardEvent){
        this.hidden = !this.hidden;
        this.closed.next(true);
        event.stopPropagation();
    }
}

したがって、main-navbarコンポーネントは基本的にhtmlであり、内部にロジックはありません。私がアプローチしようとしているのは、カスタムモーダル(ブートストラップなど)を構築することです。そのため、ナビゲーションバーのボタンをクリックすると、モーダルコンポーネントがトリガーされ、開きます。

コードではなく、どのアプローチに従うべきかを教えてください。

私はこれについて検索しましたが、主な目的は望ましい結果を達成することではなく学習することであるため、サードパーティのパッケージを使用するのは好きではありません。

解決

https://stackoverflow.com/users/6036154/embarqhttps://stackoverflow.com/users/271012/ryanのおかげで私はここで解決策を得ました:https//angular-jswxqi.stackblitz.io/

乗船

モーダルを制御するためのサービスを実装することを提案します。このサービスのプロトタイプは

enum ModalState { Close, Open }


class ModalController {
    public readonly modalState$: Subject<ModalState>;

    constructor() {
        this.modalState$ = new Subject<ModalState>();
    }

    public open() {
        this.modalState$.next(ModalState.Open);
    }

    public close() {
        this.modalState$.next(ModalState.Close);
    }
}

したがって、この最小限の実装は次のように使用できます。

  1. ModalComponentModalController.modalState$は変更をサブスクライブして処理します
  2. ModalService.openそしてModalService.close全体アプリで任意のコンポーネントが使用することができます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ダイアログでコンポーネントを再利用するための角度のあるマテリアルのベストプラクティス?

分類Dev

Vueルーターのベストプラクティス:ストアまたはコンポーネントでリダイレクトしますか?

分類Dev

Pythonで外部モジュールをインポートするためのベストプラクティス

分類Dev

同じコンテナ内の別のコンポーネントにイベントを発行するためのベストプラクティスは?

分類Dev

Vueコンポーネントでスタイルを使用するためのベストプラクティスは何ですか?

分類Dev

コンポーネントを分割するためのAngularのベストプラクティス

分類Dev

コンポーネントがレンダリングされていないことを確認するためのベストプラクティス

分類Dev

コントローラから別のコントローラにリストデータを転送するためのベストプラクティス

分類Dev

VueJS2.0でコンポーネントをインポートするためのベストプラクティス

分類Dev

コントローラ、スコープ、モデルをネストするためのベストプラクティスは?

分類Dev

tornadofxでカスタマイズされたUIコンポーネントを作成するためのベストプラクティスは何ですか?

分類Dev

反応コンポーネントのスタイルを設定するためのベストプラクティス

分類Dev

Angular2にトップレベルのコンポーネントを含めることはベストプラクティスですか?

分類Dev

VueJS:コンポーネント間でグローバルオブジェクトを操作するためのベストプラクティス?

分類Dev

ファクトリ関数からコントローラースコープ変数を設定するためのベストプラクティス?

分類Dev

API呼び出しからのデータを処理し、Reactコンポーネントをレンダリングするためのベストプラクティス

分類Dev

プレオーダーおよびインオーダーベクトルからツリーを生成するためのベクトルスライスを持つベクトルポインター

分類Dev

ネストされたPythonモジュールのインポートのベストプラクティス

分類Dev

Laravelのコントローラーからモデルにアクセスするためのベストプラクティス

分類Dev

Reactスタイリングのベストプラクティス。グローバルレベルまたはコンポーネントレベル

分類Dev

Reactでクリックイベントをあるクラスコンポーネントから別のクラスコンポーネントに渡す

分類Dev

アセンブリのバージョン番号を維持するためのベストプラクティス/ガイダンス

分類Dev

Jenkinsインスタンス/事前設定されたJenkinsを最初からインストールするためのベストプラクティス

分類Dev

Linuxディストリビューションから別のオンライン「.sh」スクリプトを起動する「.sh」スクリプトをバンドルするためのベストプラクティスは?

分類Dev

svelteコンポーネントからメソッドを公開して呼び出すためのベストプラクティス

分類Dev

アプリケーション間でコントローラーインスタンスを共有するためのベストプラクティス?

分類Dev

あるコンポーネントから別のコンポーネントに角度でデータを渡すためのベストプラクティス

分類Dev

Reactでルートコンポーネントからリーフコンポーネントに状態とコールバックを渡す際のベストプラクティスは何ですか?

分類Dev

Reactであるコンポーネントから別のコンポーネントに状態を設定するためのベストプラクティスの方法

Related 関連記事

  1. 1

    ダイアログでコンポーネントを再利用するための角度のあるマテリアルのベストプラクティス?

  2. 2

    Vueルーターのベストプラクティス:ストアまたはコンポーネントでリダイレクトしますか?

  3. 3

    Pythonで外部モジュールをインポートするためのベストプラクティス

  4. 4

    同じコンテナ内の別のコンポーネントにイベントを発行するためのベストプラクティスは?

  5. 5

    Vueコンポーネントでスタイルを使用するためのベストプラクティスは何ですか?

  6. 6

    コンポーネントを分割するためのAngularのベストプラクティス

  7. 7

    コンポーネントがレンダリングされていないことを確認するためのベストプラクティス

  8. 8

    コントローラから別のコントローラにリストデータを転送するためのベストプラクティス

  9. 9

    VueJS2.0でコンポーネントをインポートするためのベストプラクティス

  10. 10

    コントローラ、スコープ、モデルをネストするためのベストプラクティスは?

  11. 11

    tornadofxでカスタマイズされたUIコンポーネントを作成するためのベストプラクティスは何ですか?

  12. 12

    反応コンポーネントのスタイルを設定するためのベストプラクティス

  13. 13

    Angular2にトップレベルのコンポーネントを含めることはベストプラクティスですか?

  14. 14

    VueJS:コンポーネント間でグローバルオブジェクトを操作するためのベストプラクティス?

  15. 15

    ファクトリ関数からコントローラースコープ変数を設定するためのベストプラクティス?

  16. 16

    API呼び出しからのデータを処理し、Reactコンポーネントをレンダリングするためのベストプラクティス

  17. 17

    プレオーダーおよびインオーダーベクトルからツリーを生成するためのベクトルスライスを持つベクトルポインター

  18. 18

    ネストされたPythonモジュールのインポートのベストプラクティス

  19. 19

    Laravelのコントローラーからモデルにアクセスするためのベストプラクティス

  20. 20

    Reactスタイリングのベストプラクティス。グローバルレベルまたはコンポーネントレベル

  21. 21

    Reactでクリックイベントをあるクラスコンポーネントから別のクラスコンポーネントに渡す

  22. 22

    アセンブリのバージョン番号を維持するためのベストプラクティス/ガイダンス

  23. 23

    Jenkinsインスタンス/事前設定されたJenkinsを最初からインストールするためのベストプラクティス

  24. 24

    Linuxディストリビューションから別のオンライン「.sh」スクリプトを起動する「.sh」スクリプトをバンドルするためのベストプラクティスは?

  25. 25

    svelteコンポーネントからメソッドを公開して呼び出すためのベストプラクティス

  26. 26

    アプリケーション間でコントローラーインスタンスを共有するためのベストプラクティス?

  27. 27

    あるコンポーネントから別のコンポーネントに角度でデータを渡すためのベストプラクティス

  28. 28

    Reactでルートコンポーネントからリーフコンポーネントに状態とコールバックを渡す際のベストプラクティスは何ですか?

  29. 29

    Reactであるコンポーネントから別のコンポーネントに状態を設定するためのベストプラクティスの方法

ホットタグ

アーカイブ