2014-06-23 87 views
37

我是AngularJS的新手,我無法理解$scope是在AngularJS中。 是否有人可以用最簡單的方式解釋$scope在AngularJS中做了什麼,我們可以用它來做什麼。請用一種完全不懂編程知識的人來解釋它。也有人可以用最簡單的方式逐行解釋代碼嗎?

function MyController($scope) { 
    $scope.username = 'World'; 

    $scope.sayHello = function() { 
     $scope.greeting = 'Hello ' + $scope.username + '!'; 
    }; 
}; 
+0

以上功能也可以在沒有任何參考$ scope [[plunker](http://plnkr.co/edit/3RFKwkpyqGAU4loTI6hR?p=preview)] – tomd

+0

「$ scope基本上是一個javaScript對象與一些內置的鉤子「([Lukas Ruebbelke](http://onehungrymind.com/)) – tomd

回答

49

每個控制器都有一個關聯的$scope對象。

控制器(構造函數)函數負責設置模型屬性和函數。這隻能通過$ scope來完成。無論您在View(html文件)中應用哪種函數或模型,都可以使用範圍在控制器中訪問。

只能從HTML /視圖訪問此$ scope對象上定義的方法。示例 - 從納克單擊,過濾器等

現在,讓我們看看你的例子一個接一個 -

function MyController($scope) { 
$scope.username = 'World'; 
}; 

在上面的例子中,你正在定義一個名爲任何屬性用戶名,其值爲「世界」。假設你有下面的代碼行的文件 -

<div ng-controller="MyController"> 
<h1>{{data.username}}</h1></div> 

這將自動拿起從控制器的值,並在屏幕上顯示出來。值得注意的是「數據」。在標記中是html頁面可以引用控制器的控制器的名稱。這通常是在控制器內或HTML文件的頂部定義的。

2.

$scope.sayHello = function() { 
$scope.greeting = 'Hello ' + $scope.username + '!'; 
}; 

這是您可以在其中通過下面的代碼在視圖訪問控制器定義的函數 -

<div ng-controller="MyController"> 
<h1>{{data.greeting}}</h1></div> 

這裏,data.greeting會自動拾取來自sayHello函數的值,即顯示的值將是「Hello World」。用戶名中的「World」與之前的「Hello」連接。

我希望這能消除你的疑惑。 :)

7

Read The Following Manual

換句話說,範圍是一個「綁定」到應用控制器的DOM元素的「對象」。 所有子元素都可以讀取和修改範圍數據(除非您在新範圍中修改原語或將它們隔離)。

相關問題