Angular之生命周期鉤子、組件交互(父組件向子組件傳值)

1.新建angular項(xiàng)目
項(xiàng)目目錄:


image.png

2.使用知識(shí)簡(jiǎn)介
這里主要是父組件想子組件傳值叉弦,以及使用到生命周期。
ngOnChanges ngOnInit

3.基礎(chǔ)知識(shí)
在angular項(xiàng)目中藻糖,主要是在ts文件中進(jìn)行聲明卸奉,然后html中進(jìn)行布局。

4.index.html
在index.html入口文件中引入bootstrap颖御,然后把初始組件搞進(jìn)去

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Angular</title>
<base href="/">

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet"   
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"     
crossorigin="anonymous">
<!-- 可選的 Bootstrap 主題文件(一般不用引入) -->
<link rel="stylesheet"    
integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"   
crossorigin="anonymous">
</head>
<body>
  <div class="container">
  <app-root></app-root>
  </div>
 </body>
</html>

index.html通過app.component.ts文件中的組件別名 <app-root></app-root>找到父組件app榄棵。

隨后在app.component.ts文件中聲明父組件要使用到的一些變量

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

 @Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
 })
 export class AppComponent {

 _degress='';
tab_items = [];
tab_index='';
constructor(){
console.log('app-component-constructor!!!!');
this.tab_items=['全部','大專' ,'本科', '碩士', '博士']
}
select_tab(i){
this.tab_index = i;
this._degress=this.tab_items[this.tab_index];
 }
ngOnInit() {
console.log('app-component-ngoninit!!!!');
this._degress = this.tab_items[this.tab_index];
}
}

然后在app.component.html中傳值給子組件:

<div class="row">
<div class="col-md-12">
  <ul class="nav nav-tabs">
    <li role="presentation" *ngFor="let tab of tab_items index as i" [class.active]="tab_index==i"
        (click)="select_tab(i)">
      <a href="#" [style.background]="tab_index==i?'red':''" >{{i}}{{tab}}</a>
    </li>
  </ul>
  <span>{{_degress}}</span>
</div>
<div class="col-md-12">
  <!--1. 父組件傳值給子組件-->
  <app-position [degree_now]="_degress"></app-position>
</div>
</div>

子組件中的ts文件中使用@Input() 來聲明變量凝颇,然后在在組建ts文件中封裝json,這里沒有后臺(tái)直接用的一個(gè)json變量疹鳄。再通過filter進(jìn)行過濾查找想要的數(shù)據(jù)

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

 @Component({
 selector: 'app-position',
 templateUrl: './position.component.html',
 styleUrls: ['./position.component.css']
 })
 export class PositionComponent implements OnInit {
 @Input() degree_now='';
position=[
{
  "name": "銷售經(jīng)理",
  "salary": "10k-15k ",
  "education": "大專",
  "years_working": "經(jīng)驗(yàn)3-5年 ",
  "job_nature": "全職",
  "attraction": "與優(yōu)秀的人一起共事 無限發(fā)展空間",
  "tags": "企業(yè)服務(wù)高級(jí) 后端開發(fā) 分布式 J2EE SOA",
  "city": "上海",
  "pubtime":"2017-05-24 08:22:00",
  "company": {
    "name": "高富帥人才網(wǎng)",
    "logo": "images/logo.png",
    "stage": "成熟型(D輪及以上) "
  }
},
{
  "name": "Java開發(fā)工程師 ",
  "salary": "15k-25k",
  "education": "本科及以上",
  "years_working": "經(jīng)驗(yàn)5-10年",
  "job_nature": "兼職",
  "attraction": "技術(shù)挑戰(zhàn)拧略、工作居住證、美味果盤瘪弓、運(yùn)動(dòng)健身",
  "tags": "本地生活 后端開發(fā) 平臺(tái)/后臺(tái)",
  "city": "杭州",
  "pubtime":"2017-06-19 12:32:00",
  "company": {
    "name": "餓了么",
    "logo": "images/logo.png",
    "stage": "移動(dòng)互聯(lián)網(wǎng)/成熟型(D輪及以上) "
  }
},
{
  "name": "客戶經(jīng)理 ",
  "salary": "5k-8k",
  "education": "本科及以上",
  "years_working": "經(jīng)驗(yàn)1-3年",
  "job_nature": "全職",
  "attraction": "愛心兩餐垫蛆、水果下午茶、節(jié)日禮物腺怯、績(jī)效獎(jiǎng)金",
  "tags": "企業(yè)服務(wù) 顧問",
  "city": "上海",
  "pubtime":"2017-03-21 14:20:00",
  "company": {
    "name": "泛微",
    "logo": "images/logo.png",
    "stage": "移動(dòng)互聯(lián)網(wǎng),企業(yè)服務(wù) / 上市公司 "
  }
},
{
  "name": "銷售專員 ",
  "salary": "3k-5k",
  "education": "大專及以上",
  "years_working": "經(jīng)驗(yàn)1-3年",
  "job_nature": "兼職",
  "attraction": "節(jié)日禮物,年底雙薪,績(jī)效獎(jiǎng)金,管吃喝",
  "tags": "企業(yè)服務(wù) 銷售 專員",
  "city": "蘇州",
  "pubtime":"2017-04-12 18:32:00",
  "company": {
    "name": "戀家網(wǎng)",
    "logo": "images/logo.png",
    "stage": "成熟型(D輪及以上) "
  }
},
{
  "name": "高級(jí)Java工程師 ",
  "salary": "15k-30k ",
  "education": "本科及以上",
  "years_working": "經(jīng)驗(yàn)3-5年",
  "job_nature": " 全職",
  "attraction": "彈性工作制袱饭,股票期權(quán),年終獎(jiǎng)",
  "tags": "java 架構(gòu)師 SSHA",
  "city": "背景",
  "pubtime":"2017-06-24 02:12:00",
  "company": {
    "name": "創(chuàng)意網(wǎng)",
    "logo": "images/logo.png",
    "stage": "上市公司"
  }
},
{
  "name": "新媒體運(yùn)營(yíng)專員",
  "salary": "4k-6k",
  "education": "本科及以上",
  "years_working": "經(jīng)驗(yàn)1-3年",
  "job_nature": "全職",
  "attraction": "團(tuán)隊(duì)活動(dòng),節(jié)日福利,帶薪年假,股票期權(quán)",
  "tags": "汽車 新媒體 自媒體 微信開發(fā) 專員\r\n",
  "city": "南京",
  "pubtime":"2017-06-23 08:22:00",
  "company": {
    "name": "網(wǎng)約車",
    "logo": "images/logo.png",
    "stage": "成熟型(C輪) "
  }
},
{
  "name": "數(shù)據(jù)挖掘工程師",
  "salary": "12k-24k ",
  "education": "本科及以上 ",
  "years_working": "經(jīng)驗(yàn)1-3年",
  "job_nature": "全職",
  "attraction": "五險(xiǎn)一金呛占、帶薪年假虑乖、股票期權(quán)、優(yōu)秀的團(tuán)隊(duì)",
  "tags": "汽車 數(shù)據(jù) 建模 數(shù)據(jù)挖掘",
  "city": "蘇州",
  "pubtime":"2017-06-23 10:12:00",
  "company": {
    "name": "網(wǎng)約車",
    "logo": "images/logo.png",
    "stage": "成熟型(C輪) "
  }
},
{
  "name": "數(shù)據(jù)建模 ",
  "salary": "16k-32k ",
  "education": " 本科及以上",
  "years_working": "經(jīng)驗(yàn)1-3年",
  "job_nature": " 全職",
  "attraction": "節(jié)日福利,發(fā)展空間,晉升空間,股票期權(quán)",
  "tags": "數(shù)據(jù)分析 金融 建模 算法 matlab",
  "city": "蘇州",
  "pubtime":"2017-06-23 21:12:00",
  "company": {
    "name": "網(wǎng)約車",
    "logo": "images/logo.png",
    "stage": "成熟型(C輪) "
  }
},
{
  "name": "數(shù)據(jù)挖掘-風(fēng)控方向",
  "salary": "15k-30k",
  "education": "本科及以上",
  "years_working": "經(jīng)驗(yàn)3-5年 ",
  "job_nature": " 全職",
  "attraction": "節(jié)日福利,發(fā)展空間,晉升空間,股票期權(quán)",
  "tags": "專家 資深 建模 汽車 數(shù)據(jù)挖掘 大數(shù)據(jù)",
  "city": "蘇州",
  "pubtime":"2017-06-24 08:28:00",
  "company": {
    "name": "網(wǎng)約車",
    "logo": "images/logo.png",
    "stage": "成熟型(C輪) "
  }
},
{
  "name": "測(cè)試工程師 ",
  "salary": "8k-15k",
  "education": "博士",
  "years_working": "經(jīng)驗(yàn)1-3年",
  "job_nature": " 全職",
  "attraction": "彈性工作制晾虑,股票期權(quán)疹味,年終獎(jiǎng)",
  "tags": "測(cè)試 java",
  "city": "上海",
  "pubtime":"2017-06-24 05:12:00",
  "company": {
    "name": "創(chuàng)意網(wǎng)",
    "logo": "images/logo.png",
    "stage": "上市公司"
  }
},
{
  "name": "前端開發(fā)",
  "salary": "15k-30k",
  "education": "碩士",
  "years_working": "經(jīng)驗(yàn)3-5年",
  "job_nature": " 全職",
  "attraction": "彈性工作制,股票期權(quán)",
  "tags": "前端 HTML5",
  "city": "無錫",
  "pubtime":"2017-06-24 09:00:00",
  "company": {
    "name": "創(chuàng)意網(wǎng)",
    "logo": "images/logo.png",
    "stage": "上市公司"
  }
},
{
  "name": "HTML5",
  "salary": "16k-20k",
  "education": "本科及以上",
  "years_working": "經(jīng)驗(yàn)3-5年",
  "job_nature": " 全職",
  "attraction": "彈性工作 一群文藝小騷年們等著你的加入",
  "tags": "教育 音樂 直播 B2C web php",
  "city": "北京",
  "pubtime":"2017-06-24 9:12:00",
  "company": {
    "name": "創(chuàng)意網(wǎng)",
    "logo": "images/logo.png",
    "stage": "上市公司"
  }
}
];
my_position='';
select_position=[];
constructor(){

}

ngOnChanges(){
if(this.degree_now == '全部'){
  this.select_position = this.position;
}else{
  let degree = this.degree_now;
  this.select_position=this.position.filter(function (pos) {
    return  ((pos.education).indexOf(degree)!=-1);
  });
}
}
ngOnInit() {
 this.select_position = this.position;
 }

}

最后在子組件HTML頁面進(jìn)行數(shù)據(jù)渲染就可以了:

<table class="table">
<div>
<span>{{my_name}}</span>
</div>
<tr>
<th>序號(hào)</th>
<th>職位</th>
<th>工資</th>
<th>學(xué)歷</th>
</tr>
<tr *ngFor="let info of select_position index as i"   
(click)="my_name=info?.name" >
<td>{{i}}</td>
<td>{{info?.name}}</td>
<td>{{info?.salary}}</td>
<td>{{info?.education}}</td>
</tr>
</table>
image.png

V钠糙捺!需要注意的是父組件向子組件傳值會(huì)在子組件聲明中使用到@Input()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市笙隙,隨后出現(xiàn)的幾起案子洪灯,更是在濱河造成了極大的恐慌,老刑警劉巖竟痰,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婴渡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡凯亮,警方通過查閱死者的電腦和手機(jī)边臼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來假消,“玉大人柠并,你說我怎么就攤上這事「晦郑” “怎么了臼予?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)啃沪。 經(jīng)常有香客問我粘拾,道長(zhǎng),這世上最難降的妖魔是什么创千? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任缰雇,我火速辦了婚禮入偷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘械哟。我一直安慰自己疏之,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布暇咆。 她就那樣靜靜地躺著锋爪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪爸业。 梳的紋絲不亂的頭發(fā)上其骄,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音扯旷,去河邊找鬼拯爽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛薄霜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纸兔,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惰瓜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了汉矿?” 一聲冷哼從身側(cè)響起崎坊,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎洲拇,沒想到半個(gè)月后奈揍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赋续,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年男翰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纽乱。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蛾绎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸦列,到底是詐尸還是另有隱情租冠,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布薯嗤,位于F島的核電站顽爹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏骆姐。R本人自食惡果不足惜镜粤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一捏题、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧繁仁,春花似錦涉馅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捻浦,卻和暖如春晤揣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朱灿。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工昧识, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盗扒。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓跪楞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親侣灶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子甸祭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容