2017-04-01 63 views
-1
<div ng-app="myApp" ng-controller="myCtrl"> 

<h1>{{carname}}</h1> 

</div> 

<script> 
var app = angular.module('myApp', []); 

app.controller('myCtrl', function($scope) { 
    $scope.carname = "Volvo"; 
}); 
</script> 

我想$scope僅僅是匿名函數參數的名稱,你不能只給它分配的屬性(carname)沒有它傳遞一個對象作爲爭論。

那麼Angular是否會自動創建一個類似myCtrlScope的參數來傳遞給$scope參數?否則,我看不到有什麼方法將一個實際的對象傳遞給$scope,這僅僅是一個參數。

+0

$範圍由AngualrJS開發商定義的,每當我們使用它的代碼進行內聯陣註釋,角度自動才知道,並注入依賴IT 。這個概念被稱爲依賴注入進一步您可以閱讀[這](https://www.google.com.pk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjH5srUuYLTAhWEaxQKHZ11CBgQFggXMAA&url=https %3A%2F%2Fdocs.angularjs.org%2Fguide%2Fdi&USG = AFQjCNFnywa5rLhpd14MLfHHNAmkQbjs5w&SIG2 = bdJ5Y9iVZ - H78R0xrgudQ&BVM = bv.151325232,d.bGs)爲了更好地理解。 – MUT

+0

這在文檔中有非常清楚的解釋:https://docs.angularjs.org/guide/scope – Claies

回答

0

你寫的控制器可以寫成這樣也順便:

app.controller('myCtrl', [ "$scope", function($scope) { 
    $scope.carname = "Volvo"; 
}]); 

你聲明的方式是速記方法。你提到的方式沒有錯,但更好的聲明方法是上面的方法,我們指定每個依賴關係。您可以查看dependency injection的文檔以獲得更好的說明。

0

使用像已經是這個

<div ng-app="myApp" ng-controller="myCtrl"> 

<h1>{{carname}}</h1> 

</div> 

<script> 
var app = angular.module('myApp', []); 
app.controller('myCtrl',['$scope', function($scope){ 
    $scope.carname = "volvo"; 
}]); 
</script> 

</body> 
</html>