3 回答

TA貢獻1802條經驗 獲得超10個贊
AngularJS 作用域
基于 jQuery 的傳統 WEB 應用中,為了監聽用戶的輸入等行為,需要為每一個 DOM 元素設置一個監聽方法,也即是監聽 DOM 上發生的各類事件,然后由 jQuery 做出回應并展示在頁面上。這種方法簡便直觀,但是一旦 WEB 應用變得龐大而且復雜,那么監聽代碼就顯得非常的機械而且冗余,更可怕的是,如果對于 DOM 的事件監聽沒有做好管理,那么很容易出現瀏覽器資源的泄露。
針對以上所暴露的問題,AngularJS 用一系列指令來代替 jQuery 的事件綁定代碼。為了能夠組織好各類指令之間的協調工作而不出現數據混亂,AngularJS 在模型層上引申出作用域的概念,以配合控制器來實現對視圖層的展現工作。
作用域(Scope)
AngularJS 中,作用域是一個指向應用模型的對象,它是表達式的執行環境。作用域有層次結構,這個層次和相應的 DOM 幾乎是一樣的。作用域能監控表達式和傳遞事件。
在 HTML 代碼中,一旦一個 ng-app 指令被定義,那么一個作用域就產生了,由 ng-app 所生成的作用域比較特殊,它是一個根作用域($rootScope),它是其他所有$Scope 的最頂層。
清單 1. 生成根作用域
<html>
<head><script src="angular.min.js"></script></head>
<body data-ng-app="app">...</body>
</html>

TA貢獻1801條經驗 獲得超8個贊
scope: true時,產生一個子作用域(child scope),子作用域繼承父作用域,它的作用域只包括template里面的代碼,這里你沒有寫;
scope: {}時,產生一個隔離的作用域,其實它也是一個子作用域,不過它并沒有繼承父作用域,它的作用域范圍也只有template里面的代碼;
也就是說scope: true和scope:{}的作用域都不包括ng-init
- 3 回答
- 0 關注
- 470 瀏覽
添加回答
舉報