真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

AngularJS限定$scope的范圍實(shí)例詳解

限定$scope的范圍

創(chuàng)新互聯(lián)專注于海滄企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站制作。海滄網(wǎng)站建設(shè)公司,為海滄等地區(qū)提供建站服務(wù)。全流程按需定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

JavaScript基于原型的繼承與面向?qū)ο笾谢陬惖睦^承有著微妙的區(qū)別,這通常不是什么問題,但這個微妙之處在使用$scope時就會表現(xiàn)出來。在AngularJS中,每個$scope都會繼承父$scope,最高層稱之為$rootScope。($scope與傳統(tǒng)指令有些不同,它們有一定的作用范圍i,且只繼承顯式聲明的屬性。)

由于原型繼承的特點(diǎn),在父類和子類間共享數(shù)據(jù)不太重要,不過如果不小心的話,也很容易誤用了一個父$scope的屬性。

比如說,我們需要在一個導(dǎo)航欄上顯示一個用戶名,這個用戶名是在登錄表單中輸入的,下面這種嘗試應(yīng)該是能工作的:

{{user}}
{{user}}

那么問題來了……:在text input中設(shè)置了user的ng-model,當(dāng)用戶在其中輸入內(nèi)容時,哪個模版會被更新?navCtrl還是loginCtrl,還是都會?

如果你選擇了loginCtrl,那么你可能已經(jīng)理解了原型繼承是如何工作的了。

當(dāng)你檢索字面值時,原型鏈并不起作用。如果navCtrl也同時被更新的話,檢索原型鏈?zhǔn)潜仨毜模坏绻凳且粋€對象,這就會發(fā)生。(記住,在javascript中,函數(shù)、數(shù)組和對象都是對象)

所以為了獲得預(yù)期的行為,需要在navCtrl中創(chuàng)建一個對象,它可以被loginCtrl引用。

{{user.name}}
{{user.name}}

現(xiàn)在,由于user是一個對象,原型鏈就會起作用,navCtrl模版和$scope和loginCtrl都會被更新。

這看上去是一個很做作的例子,但是當(dāng)你使用某些指令去創(chuàng)建子$scope,如ngRepeat時,這個問題很容易就會產(chǎn)生。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


當(dāng)前題目:AngularJS限定$scope的范圍實(shí)例詳解
URL標(biāo)題:http://weahome.cn/article/pgeesi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部