2015-05-28 33 views
0

我是Angular的初學者。我一直在尋找在W3Schools的教程:

http://www.w3schools.com/angular/angular_controllers.asp

我試圖改變

app.controller('myCtrl', function($scope) { 
 
    $scope.firstName = "John"; 
 
    $scope.lastName = "Doe"; 
 
});

app.controller('myCtrl', function(a) { 
 
    a.firstName = "John"; 
 
    a.lastName = "Doe"; 
 
});

並且該示例停止工作。看起來$ scope不僅僅是一個常規的函數參數,而且它又是什麼?

+0

非常類似於這樣的問題:http://stackoverflow.com/questions/24360295/what-is-scope-is-angularjs –

+1

是的,'$ scope'是一個特殊的參數,至少在開始時,它是Angular的主要構建塊之一。我也建議不要從w3schools學習。一個好的出發地點是[egghead.io](https://egghead.io/articles/new-to-angularjs-start-learning-here) – Tom

+0

我明白範圍的目的是什麼,我沒有得到Javascript是如何爲函數參數提供這種奇怪的行爲的? – zslevi

回答

2

您可以更改參數的名字,但你需要使用下面的語法符號:

app.controller('myCtrl', function(a) { 
    a.firstName = "John"; 
    a.lastName = "Doe"; 
}); 

app.controller('myCtrl', ['$scope', function(a) { 
    a.firstName = "John"; 
    a.lastName = "Doe"; 
}]); 

看看到DI

+0

所以Angular對這些方法做了一些思考,這就是參數名稱很重要的原因,對嗎? – zslevi

+0

它使用第一個參數作爲函數參數的實名。這是必要的,因爲如果沒有這種語法,縮小過程會破壞應用程序。 – tommy

相關問題