angular 4 中關於父子元件傳值的示例

2022-03-28 19:16:01 字數 4201 閱讀 9566

1home.component.ts

2

3import from '@angular/core';4

5@component()

10 export class homecomponent implements

oninit

1314

ngoninit() 16;

1920 }

header.component.html

<

h1 class

="header"

>this is }

h1>

<

hr />

<

button

(click)

='childfun()'

>呼叫父元件的方法

button

>

<

button

(click)

='childoutfun()'

>子元件廣播事件向父元件傳值

button

>

<

hr />

header.component.ts

import from '@angular/core';//

import from 'protractor';

@component()

export

class headercomponent implements

oninit, ondestroy, onchanges

ngoninit()

ngondestroy()

ngonchanges()

childfun()

///子元件定義乙個output的屬性,來作為父元件的引用,進行廣播

///父元件通過,監聽這樣乙個子元件的廣播屬性,來響應子元件的操作 注意:由於是事件,所以用 ()

public msg: string = '這是news的header'

} ///父元件通過屬性傳值公開給子元件的方法

parentfun(msg)

///父元件監聽的子元件方法

parentaimedfun(e)

////父元件通過viewchild直接呼叫子元件的方法

excutechildfunbyviewchild()

}

news.component.html

<

[msg]

='msg'

[parentfun]

='parentfun'

(childout)

='parentaimedfun($event)'

#headerchild

>

>

<

button

(click)

="headerchild.childfunforparent()"

>試試父元件執行子元件方法

button

>

<

button

(click)

="excutechildfunbyviewchild()"

>試試父元件通過viewchild執行子元件方法

button

>

<

br>

<

p>news works!

p>

<

span

[innerhtml]

="spanhtml"

>

span

>

<

div

[id]

="id"

>

div>

<

div>

<

ul>

<

li *ngfor

="let item of news;let key=index"

>

系列:}

<

br>

車型數量:}

<

ol>

<

div

*ngif

="item.brand.length>0"

>

<

li *ngfor

="let car of item.brand;let key=index"

>

車型:}

li>

div>

<

div

*ngif

="item.brand.length==0"

>

暫無更多資料

div>

ol>

li>

ul>

div>

<

hr />

<

h2>jsonp查詢資料

h2>

輸入關鍵字:

<

input

type

="text"

[(ngmodel)]

="search"

/>

<

button

(click)

="getapidata()"

>點選查詢

button

>

父元件向子元件傳值的方法:

1.通過對子元件的引用,給子元件繫結 屬性,如

其中:msg parentfun 都是 父元件給子元件繫結的屬性

子元件通過@input() 屬性名:type(型別 不知道則為any)來獲取

父元件的屬性傳值

例如:@input() msg: string;

@input() parentfun: any;

2.關於output的用法

output是和eventemitter一起使用來實現父子元件傳值的

原理:a 子元件進行事件廣播

b 父元件在引用的子元件時,監聽廣播事件,既然是事件,那麼寫法肯定是(事件名稱)='父元件的事件函式()'

@output() childbroadcastevent=new eventemitter() 注意:t即為傳播的資料型別

childoutevent()

即發布訂閱模式,來實現值的傳輸

當子元件的某個操作觸發childoutevent的時候,函式呼叫:childbroadcastevent 廣播事件,而父元件監聽這個事件

所以就可以接受來自子元件的資料

3.使用viewchild

父元件申明 @viewchild('子元件的selector') 這時候,相當於拿到子元件的例項,然後就可以直接呼叫子元件的方法或者使用子元件的屬性了

可以理解為**模式

Angular4基本功 元件繫結

最近專案上用到了angular4進行開發前台,組織了零散的知識分享給大家根據需求改變屬性,根據 可以看出,只要star是true則我們現實我們的樣式,如果為false則不顯示,很好的做到了動態的效果 class.glyphicon star empty star div tsprivate star...

angular4如何安裝建立專案 元件

一 安裝最新版本的nodejs 首先在控制台用node v 和npm v來看一上當前的版本。老版本會出現錯誤。二 全域性安裝angular cli 腳手架工具 1.使用npm命令安裝 npm install g angular cli2.npm可能會安裝失敗,可以切換到 映象 npm install...

Angular元件 父子元件通訊

angular元件間通訊 元件之間松耦合,元件之間知道的越少越好。元件4裡面點選按鈕,觸發元件5的初始化邏輯。傳統做法 在按鈕4的點選事件裡呼叫元件5的方法。緊密耦合。angular 在元件4根本不知道元件5存在的情況下實現。使用松耦合的方式在元件之間傳遞資料開發出高重用性的元件。使用輸入輸出屬性在...