84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
angularjs中自訂的指令中scope的值為{}創造了一個隔離作用域,但仍能存取到父級作用域中的屬性,怎麼回事? (隔離作用域應該不能存取父級作用域的屬性啊,在沒有進行綁定策略之前)
先說一點你這個例子裡也沒給scope屬性賦值。 scope屬性三種取值:true,false,{}。 false是預設值。
預設情況,false。此時,子作用域和父作用域是一個,scope.$$id的值一樣。
為true時是建立一個新作用域,scope.$$id值不同了。不過此作用域繼承自父作用域。 就是和原生js作用域鏈的特性相同,子作用域可存取父作用域中的屬性和方法,父作用域不可存取子作用域的屬性屬性和方法。
為{}時,是真正的隔離。這時自訂指令的作用域和父作用域完全沒關係了。但如果你還要存取父作用域的屬性方法怎麼辦,就把對應的屬性配置在{}中。具體配置方法題主自行谷歌百度吧。
同一個控制器裡都可以存取到,不同的控制器就存取不到
你沒有隔離呀,隔離的話要加scope:{}
隔離scope有兩種方式:
scope: true scope: {}
先說一點你這個例子裡也沒給scope屬性賦值。 scope屬性三種取值:true,false,{}。 false是預設值。
預設情況,false。此時,子作用域和父作用域是一個,scope.$$id的值一樣。
為true時是建立一個新作用域,scope.$$id值不同了。不過此作用域繼承自父作用域。 就是和原生js作用域鏈的特性相同,子作用域可存取父作用域中的屬性和方法,父作用域不可存取子作用域的屬性屬性和方法。
為{}時,是真正的隔離。這時自訂指令的作用域和父作用域完全沒關係了。但如果你還要存取父作用域的屬性方法怎麼辦,就把對應的屬性配置在{}中。具體配置方法題主自行谷歌百度吧。
同一個控制器裡都可以存取到,不同的控制器就存取不到
你沒有隔離呀,隔離的話要加scope:{}
隔離scope有兩種方式: