日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Angular教程:Angular在父子組件、指令之間共享數(shù)據(jù)

在父子指令及組件之間共享數(shù)據(jù)

Angular 中的一個常見模式就是在父組件和一個或多個子組件之間共享數(shù)據(jù)。可以用 ?@Input()? 和 ?@Output()? 來實現(xiàn)這個模式。

創(chuàng)新互聯(lián)成立以來不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術為基點,以客戶需求中心、市場為導向”的快速反應體系。對公司的主營項目,如中高端企業(yè)網(wǎng)站企劃 / 設計、行業(yè) / 企業(yè)門戶設計推廣、行業(yè)門戶平臺運營、手機APP定制開發(fā)、手機網(wǎng)站制作設計、微信網(wǎng)站制作、軟件開發(fā)、IDC機房托管等實行標準化操作,讓客戶可以直觀的預知到從創(chuàng)新互聯(lián)可以獲得的服務效果。

本章包含代碼片段的可工作實例參閱現(xiàn)場演練 / 下載范例。

考慮以下層次結構:


  

?? 充當了 ?? 的上下文。

?@Input()? 和 ?@Output()? 為子組件提供了一種與其父組件通信的方法。 ?@Input()? 允許父組件更新子組件中的數(shù)據(jù)。相反,?@Output()? 允許子組件向父組件發(fā)送數(shù)據(jù)。

把數(shù)據(jù)發(fā)送到子組件

子組件或指令中的 ?@Input()? 裝飾器表示該屬性可以從其父組件中獲取值。

要使用 ?@Input()?,就必須對父組件和子組件進行配置。

配置子組件

要使用 ?@Input()? 裝飾器,首先要導入 ?Input?,然后用 ?@Input()? 裝飾該屬性,如下例所示。

import { Component, Input } from '@angular/core'; // First, import Input
export class ItemDetailComponent {
  @Input() item = ''; // decorate the property with @Input()
}

在這個例子中, ?@Input()? 會修飾屬性 ?item?,它的類型為 ?string?,但 ?@Input()? 屬性可以是任意類型,比如 ?number?、?string?、?boolean ?或 ?object?。?item ?的值來自父組件。

接下來,在子組件模板中添加以下內容:

Today's item: {{item}}

配置父組件

下一步是在父組件的模板中綁定該屬性。在這個例子中,父組件模板是 ?app.component.html? 。

  1. 使用子組件的 selector (??) 作為父組件模板中的指令。
  2. 使用屬性綁定把子組件的 ?item ?屬性綁定到父組件的 ?currentItem ?屬性上。
  3. 在父組件類中,為 ?currentItem ?指定一個值:
  4. export class AppComponent {
      currentItem = 'Television';
    }

通過 ?@Input()?,Angular 把 ?currentItem ?的值傳給子組件,以便 ?item ?渲染為 ?Television ?。

下圖展示了這種結構:

方括號 ?[]? 中的目標就是子組件中用 ?@Input()? 裝飾的那個屬性。綁定源(等號的右邊部分)則是父組件傳給內嵌組件的數(shù)據(jù)。

監(jiān)視 @Input() 的變更

要想監(jiān)視 ?@Input()? 屬性的變化,可以用 Angular 的生命周期鉤子?OnChanges ?。

把數(shù)據(jù)發(fā)送到父組件

子組件或指令中的 ?@Output()? 裝飾器允許數(shù)據(jù)從子組件傳給父組件。

?@Output()? 在子組件中標記了一個屬性,作為數(shù)據(jù)從子組件傳遞到父組件的途徑。

子組件使用 ?@Output()? 屬性來引發(fā)事件,以通知父組件這一變化。為了引發(fā)事件, ?@Output()? 必須是 ?EventEmitter ?類型,它是 ?@angular/core? 中用來發(fā)出自定義事件的類。

下面的例子給出了如何在組件中設置 ?@Output()?,來把數(shù)據(jù)從 HTML 的 ?? 推送到父組件的數(shù)組中。

要使用 ?@Output()? ,就必須配置父組件和子組件。

配置子組件

下面的例子中有一個 ?? ,用戶可以輸入一個值,然后點擊一個引發(fā)事件 ?

第二個元素是帶有 ?click ?事件綁定 的 ?