Im folgenden Code übergeben wurde:
<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="personCtrl">
First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{fullName()}}
</div>
<script>
var app = angular.module('myApp', []);
app.controller('personCtrl', function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
$scope.fullName = function() {
return $scope.firstName + " " + $scope.lastName;
};
});
</script>
</body>
</html>
Wie kann $scope.fullName
auf eine Funktion eingestellt wird, die $scope
verwendet, doch ist es nicht explizit übergeben?
I.e. warum:
$scope.fullName = function() {
statt
$scope.fullName = function($scope) {
'$ scope' wird bereits in Ihre 'Controller'-Funktion injiziert. – developer033
Dies ist sehr Grundlagen von Javascript. Lesen Sie über Bereiche und Funktionsparameter. – dfsq
^Dies. Es muss nur 'function ($ scope) {}' sein, wenn die Funktion mit einem Argument aufgerufen wird (und hier ist es nicht: '{{fullName()}}'). Und '$ scope' sollte nicht an diese Funktion übergeben werden, da' $ scope' bereits im übergeordneten Funktionsumfang verfügbar ist. Wie gesagt, dies sind JS Grundlagen, sie sind nicht spezifisch für Angular. – estus