scope 是 HTML(view) 和 JavaScript(controller) 之間的綁定零件,也是可用屬性和方法的物件,在 view 和 controller 之間都可以使用。
當在 controller 新增屬性到 scope 物件,view 就可以使用這個屬性,使用時不需要加前綴詞
$scope,只要提供屬性名稱即可,例如:
{{carname}}
AngularJS application 是由以下構成:
- View:指 HTML
- Model:對目前 view 來說可使用的資料
- Controller:可以創建/改變/移除/控制的 JavaScript 函數
而 scope 就是 Model!
在任何時間認識你的 scope 如何處理是非常重要的,這裡只有一個 scope,所以可以知道 scope 不是一個發佈,但對大型專案而言,在只使用某些 scope 的 HTML 裡可以變成一個區塊,像是
<li ng-repeat="x in names">{{x}}</li>,每個
<li> 元素已經取出目前重複的物件,
x 可以自由命名,如果迴圈內命名一樣。
所有 application 都有一個包含
ng-app 指令的 HTML 元素產生的
$rootScope,類似全域變數的概念,可隨時取得,如果變數同時存在目前的 scope 以及 rootscope 裡,會以目前的變數為主。