国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

關于angularJs指令的Scope(作用域)介紹

2019-11-20 08:40:29
字體:
來源:轉載
供稿:網友

每當一個指令被創建的時候,都會有這樣一個選擇,是繼承自己的父作用域(一般是外部的Controller提供的作用域或者根作用域($rootScope)),還是創建一個新的自己的作用域,當然AngularJS為我們指令的scope參數提供了三種選擇,分別是:false,true,{};默認情況下是false。

1.scope = false

JS 代碼:

html 代碼:

result:

修改文本框的內容,兩個名字都會變,實際上修改的是同一個$scope的name屬性。

2. scope=true

修改上面的JS代碼,將指令中的:scope:false修改為scope:true

然后我們再試著在我們的input輸入框中寫一些字符串,會發現,指令中的那個name發生了變化,但是指令外的那個name卻沒有發生變化,這說明了一個問題。

當我們將scope設置為true的時候,我們就新創建了一個作用域,只不過這個作用域是繼承了我們的父作用域;我覺得可以這樣理解,我們新創建的作用域是一個新的作用域,只不過在初始化的時候,用了父作用域的屬性和方法去填充我們這個新的作用域。它和父作用域不是同一個作用域。
當我們將scope設置為false的時候,我們創建的指令和父作用域(其實是同一個作用域)共享同一個model模型,所以在指令中修改模型數據,它會反映到父作用域的模型中。

3. scope={}

當我們將scope設置為{}時,意味著我們創建的一個新的與父作用域隔離的新的作用域,這使我們在不知道外部環境的情況下,就可以正常工作,不依賴外部環境。

JS代碼:

html代碼:

result:

修改文本框內容只有指令中的名字會被修改.

scope: {@=&}

@
這是一個單項綁定的前綴標識符
使用方法:在元素中使用屬性,好比這樣<div my-directive my-name="{{name}}"></div>,注意,屬性的名字要用-將兩個單詞連接,因為是數據的單項綁定所以要通過使用{{}}來綁定數據。

=
這是一個雙向數據綁定前綴標識符
使用方法:在元素中使用屬性,好比這樣<div my-directive age="age"></div>,注意,數據的雙向綁定要通過=前綴標識符實現,所以不可以使用{{}}。

&
這是一個綁定函數方法的前綴標識符
使用方法:在元素中使用屬性,好比這樣<div my-directive change-my-age="changeAge()"></div>,注意,屬性的名字要用-將多個個單詞連接。

以上就是小編為大家帶來的關于angularJs指令的Scope(作用域)介紹全部內容了,希望大家多多支持武林網~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永康市| 蓬安县| 浮山县| 桂东县| 临湘市| 平山县| 金华市| 新野县| 公安县| 五河县| 拜城县| 霍州市| 烟台市| 吴川市| 丰顺县| 栾城县| 阿图什市| 泽州县| 武威市| 牟定县| 电白县| 深州市| 湾仔区| 资中县| 安溪县| 讷河市| 巴塘县| 晋江市| 漳浦县| 蒙阴县| 仲巴县| 贵阳市| 定安县| 清河县| 安图县| 沁源县| 湖南省| 达拉特旗| 东乡县| 尉犁县| 乌审旗|