angular2 入出力分析

小云云
リリース: 2018-01-25 12:00:51
オリジナル
1277 人が閲覧しました

この記事は angular2 ng2 @input と @output の理解と例を中心に紹介していますが、編集者が非常に良いと思ったので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

angular2 @input と @output を理解する

まずサンプルを作成し、次にコードを提供します

例:


<talk-cmp [talk]="someExp" (rate)="eventHandler($event.rating)">
ログイン後にコピー

input, [talk]="someExp" このタグは理解できます特別なものとして、リスナーは親コンポーネントによって渡された someExp パラメータを監視し、それを自身のコンポーネントの talk 変数に格納します。バックドアを開いたように見え、親コンポーネントの someExp が入ることだけが許可されます。これはすぐに talk というセルに取り込まれ、サブコンポーネントの @Input を通じてこの変数 talk を定義して使用できます。

output, (click)="eventHandler($event.rated) これは、子コンポーネントのクリックイベントがトリガーされると、親コンポーネントのeventHandler関数が実行され、子コンポーネントのパラメータ$event.ratedが実行されることを意味します。コンポーネントのeventHandler関数が親に渡されます。ちょうど子供が泣いたとき(クリックイベントを実行)、母親がすぐに子供を抱きかかえて(母親のeventHandlerを実行)、同時に母親が何かを取得します。子のパラメータ ($event.rated )

1, @input()

親コンポーネント Father.component.ts はデータを提供します


import {Component} from "@angular/core";
@Component({
  selector: "my-father",
  templateUrl: "father.html"
})
export class FatherComponent {
  data: Array<Object>;
  constructor() {
    this.data = [
      {
        "id": 1,
        "name": "html"
      },
      {
        "id": 2,
        "name": "css"
      },
      {
        "id": 3,
        "name": "angular"
      },
      {
        "id": 4,
        "name": "ionic"
      },
      {
        "id": 5,
        "name": "node"
      }
    ]
  }
}
ログイン後にコピー

テンプレートファイル Father.html


<h1>父组件</h1>
// 包含子组件, 并使用属性传递数据过去
<my-child [info]="data"></my-child>
ログイン後にコピー

子コンポーネント child.component.ts はデータ


import {Component, Input} from "@angular/core";
@Component({
  selector: "my-child",
  templateUrl: "child.html"
})
export class ChildComponent {  
  // 使用@Input获取传递过来的数据
  @Input()
  info: Array<Object>;
  constructor() {
  
  }
}
ログイン後にコピー

サブコンポーネント child.html テンプレート ファイル


<ul>
  <li *ngFor="let item of info">
    {{item.name}}
  </li>
</ul>
ログイン後にコピー

2、@Output()

サブコンポーネントthree-link.component.ts

1を取得します。


import {Component, OnInit, Output, EventEmitter} from "@angular/core";
ログイン後にコピー

2. 定義出力変数


export class ThreeLinkComponent {
  province: string;
  // 输出一下参数
  @Output() provinceOut = new EventEmitter();  
  constructor() {
    this.province = "陕西";
  } 
}
ログイン後にコピー

3. イベントがトリガーされ、変数が親コンポーネントに出力されます


provinceChange() {
  // 选择省份的时候发射省份给父组件
  this.provinceOut.emit(this.province);
}
ログイン後にコピー

親コンポーネントテンプレート


<!--三级联动组件-->
<three-link (provinceOut)="recPro($event)"></three-link>
ログイン後にコピー

親コンポーネント


// 函数接受子函数传递过来的变量, 子函数中emit的时候触发这个函数。
recPro(event) {
  this.province = event;
}
ログイン後にコピー

関連する推奨事項:

JS 実装 ドロップダウン メニューをクリックして選択したコンテンツを入力ボックスに同期する例

JS ドロップダウン メニューをクリックして選択したコンテンツを同期する入力ボックスへの実装方法

JavaScriptの戻り値をマークするoutputタグを利用したインスタンス解析

以上がangular2 入出力分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!