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

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

新聞中心

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

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

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

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

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

考慮以下層次結(jié)構(gòu):


  

?? 充當(dāng)了 ?? 的上下文。

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

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

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

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

配置子組件

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

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

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

接下來,在子組件模板中添加以下內(nèi)容:

Today's item: {{item}}

配置父組件

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

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

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

下圖展示了這種結(jié)構(gòu):

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

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

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

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

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

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

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

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

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

配置子組件

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

第二個(gè)元素是帶有 ?click ?事件綁定 的 ?