angular常用方法技巧和零碎知識(shí)點(diǎn)整理

1陕凹、在父組件里面改變子組件的樣式

問題分析

angular組件的CSS樣式被封裝進(jìn)了自己的視圖中,而不會(huì)影響到應(yīng)用程序的其它組件,這個(gè)效果在大部分時(shí)候非常的有用,我們不用擔(dān)心某個(gè)組件的代碼會(huì)污染其子組件,但當(dāng)我們想改變第三方庫的樣式的時(shí)候也非常的麻煩吴叶。angular的視圖封裝模式默認(rèn)是Emulated 模式,以下是官方對(duì)其功能的描述。

通過預(yù)處理(并改名)CSS 代碼來模擬 Shadow DOM 的行為序臂,以達(dá)到把 CSS 樣式局限在組件視圖中的目的晤郑。
其實(shí)如果在html中搜索#comp1,會(huì)得到如下的結(jié)果。angular默認(rèn)的為每個(gè)組件添加了一個(gè)屬性贸宏,同樣也為css限定了對(duì)應(yīng)的屬性造寝。這也是為什么在"父組件"修改"子組件"不生效,因?yàn)楦菊也坏?code>#comp1[_ngcontent-haw-c0]選擇器對(duì)應(yīng)的元素。

問題分析

解決辦法

可以使用 /deep/::ng-deep選擇器來強(qiáng)制一個(gè)樣式對(duì)各級(jí)子組件的視圖也生效吭练,它不但會(huì)作用于組件的子視圖诫龙,也會(huì)作用于投影進(jìn)來的內(nèi)容(ng-content)

.f-red{
    color: red;
}

/* 企圖修改組件1的字體顏色 */
/* :host ::ng-deep #comp1{
    color: red;
} */
:host /deep/ #comp1{
    color: red;
}

參考:https://blog.51cto.com/13876655/2393237

2鲫咽、Angular的路由跳轉(zhuǎn)與傳參

http://www.reibang.com/p/28f57c670979

3签赃、引用模板中的某個(gè) DOM 元素, 即 模板引用變量 #var

當(dāng)我們需要引用一個(gè)Dom元素的值的時(shí)候谷异,原生js要求我們以操作Dom的方式來(document.getElementById())或者(document.getElementsByClassName()),而在angualr中 使用模板引用變量 ( #var )即可。

栗子:

使用井號(hào) (#) 來聲明引用變量锦聊。 #phone 的意思就是聲明一個(gè)名叫 phone 的變量來引用 <input>元素
你可以在模板中的任何地方引用模板引用變量歹嘹。 比如聲明在 <input>上的 phone變量就是在模板另一側(cè)的 <button>上使用的。


<input #phone placeholder="phone number">

<!-- lots of other elements -->

<!-- phone refers to the input element; pass its `value` to an event handler -->
<button (click)="callPhone(phone.value)">Call</button>
<input type="text" class="form-control" id="name"
  required
  [(ngModel)]="model.name" name="name"
  #spy>
<br>TODO: remove this: {{spy.className}}

參考:https://angular.cn/guide/template-syntax#template-reference-variables--var-

也可以用 ref-前綴代替 #孔庭。 下面的例子中就用把 fax變量聲明成了 ref-fax而不是 #fax尺上。

<input ref-fax placeholder="fax number">
<button (click)="callFax(fax.value)">Fax</button>

3.2 對(duì)模板引用變量賦值

image.png


NgModel 導(dǎo)出成了一個(gè)名叫 name 的局部變量。NgModel 把自己控制的 FormControl 實(shí)例的屬性映射出去圆到,讓你能在模板中檢查控件的狀態(tài)怎抛,比如 validdirty。要了解完整的控件屬性芽淡,參見 API 參考手冊(cè)中的AbstractControl马绝。

4、在組件里 引用其它組件的屬性值挣菲,即聲明輸入與輸出屬性

angular里富稻,我在某個(gè)組件里如果想使用某個(gè)組件的內(nèi)部屬性值時(shí)是肯定會(huì)報(bào)錯(cuò)的,因?yàn)閍ngular是不允許組件自身的值被其它組件修改白胀,這時(shí)可以使用@[Input](https://angular.cn/api/core/Input)()@[Output](https://angular.cn/api/core/Output)() 裝飾器唉窃。

參考:https://angular.cn/guide/template-syntax#input-and-output-properties

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市纹笼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌苟跪,老刑警劉巖廷痘,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異件已,居然都是意外死亡笋额,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門篷扩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兄猩,“玉大人,你說我怎么就攤上這事鉴未∈嘣” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵铜秆,是天一觀的道長(zhǎng)淹真。 經(jīng)常有香客問我,道長(zhǎng)连茧,這世上最難降的妖魔是什么核蘸? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任巍糯,我火速辦了婚禮,結(jié)果婚禮上客扎,老公的妹妹穿的比我還像新娘祟峦。我一直安慰自己,他們只是感情好徙鱼,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布宅楞。 她就那樣靜靜地躺著,像睡著了一般疆偿。 火紅的嫁衣襯著肌膚如雪咱筛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天杆故,我揣著相機(jī)與錄音迅箩,去河邊找鬼。 笑死处铛,一個(gè)胖子當(dāng)著我的面吹牛饲趋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播撤蟆,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼奕塑,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了家肯?” 一聲冷哼從身側(cè)響起龄砰,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讨衣,沒想到半個(gè)月后换棚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡反镇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年固蚤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歹茶。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡夕玩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惊豺,到底是詐尸還是另有隱情燎孟,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布尸昧,位于F島的核電站缤弦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏彻磁。R本人自食惡果不足惜碍沐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一狸捅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧累提,春花似錦尘喝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至无虚,卻和暖如春缔赠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背友题。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工嗤堰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人度宦。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓踢匣,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親戈抄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子离唬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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

  • 聲明 本系列文章內(nèi)容梳理自以下來源: Angular 官方中文版教程 官方的教程,其實(shí)已經(jīng)很詳細(xì)且易懂划鸽,這里再次梳...
    請(qǐng)叫我大蘇閱讀 1,068評(píng)論 0 6
  • 1.類庫( 提供類方法 ) 和框架 類庫提供一系列的函數(shù)和方法的合集输莺,能夠加快你寫代碼的速度。但是主導(dǎo)邏輯的還是自...
    w_zhuan閱讀 1,784評(píng)論 0 8
  • 單向從數(shù)據(jù)源到視圖 單向從視圖到數(shù)據(jù)源 雙向 DOM property 的值可以改變裸诽;HTML attribute...
    chrisghb閱讀 929評(píng)論 1 1
  • AngularJS是什么嫂用?AngularJs(后面就簡(jiǎn)稱ng了)是一個(gè)用于設(shè)計(jì)動(dòng)態(tài)web應(yīng)用的結(jié)構(gòu)框架。首先崭捍,它是...
    200813閱讀 1,588評(píng)論 0 3
  • 最近幾天只要是打開微博橄浓,就一定會(huì)被金鐘鉉去世的消息所刷屏粒梦。說實(shí)話,在此之前荸实,我從來不知道金鐘鉉這個(gè)人匀们,這是我第一次...
    漠郴江閱讀 392評(píng)論 0 1