AngularJS kontroller
- Föregående sida AngularJS data binding
- Nästa sida AngularJS scop
AngularJS kontroller控制 AngularJS 应用程序的数据。
AngularJS 控制器是常规的 JavaScript 对象。
AngularJS kontroller
AngularJS 应用程序由控制器控制。
ng-controller 指令定义应用程序控制器。
控制器是由标准的 JavaScript 对象构造器创建的 JavaScript 对象。
AngularJS exempel
<div ng-app="myApp" ng-controller="myCtrl"> Förnamn: <input type="text" ng-model="firstName"><br> Efternamn: <input type="text" ng-model="lastName"><br> <br> 全名: {{firstName + " " + lastName}} </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.firstName = "Bill"; $scope.lastName = "Gates"; }); </script>
应用程序说明:
AngularJS 应用程序由 ng-app="myApp"
定义。应用程序在 <div> 内运行。
ng-controller="myCtrl"
egenskapen är en AngularJS-anvisning. Den definierar en kontrollr.
myCtrl
en funktion är en JavaScript-funktion.
AngularJS kommer att använda $scope
objektet anropar kontrollr.
I AngularJS är $scope ägaren till applikationsobjektet (alla applikationsvariabler och funktioner).
Kontrollrar i räckvidden (firstName
och lastName
)för att skapa två egenskaper (variabler).
ng-model
Anvisningar binder inmatningsfält till kontrollrsegenskaper (firstName och lastName).
Kontrollrammetoder
Ovanstående exempel visar ett kontrollobjekt med två egenskaper: lastName och firstName.
Kontrollrar kan också ha metoder (som variabler för funktioner):
AngularJS exempel
<div ng-app="myApp" ng-controller="personCtrl"> Förnamn: <input type="text" ng-model="firstName"><br> Efternamn: <input type="text" ng-model="lastName"><br> <br> Fullständigt namn: {{fullName()}} </div> <script> var app = angular.module('myApp', []); app.controller('personCtrl', function($scope) { $scope.firstName = "Bill"; $scope.lastName = "Gates"; $scope.fullName = function() { return $scope.firstName + " " + $scope.lastName; }; }); </script>
Kontrollrar i externa filer
Det är mycket vanligt att lagra kontrollrar i externa filer i större applikationer.
Kopiera endast koden mellan <script>-taggarna till en fil som personController.js i den externa filen:
AngularJS exempel
<div ng-app="myApp" ng-controller="personCtrl"> Förnamn: <input type="text" ng-model="firstName"><br> Efternamn: <input type="text" ng-model="lastName"><br> <br> Fullständigt namn: {{fullName()}} </div> <script src="personController.js"></script>
En annan exempel
För nästa exempel kommer vi att skapa en ny kontrollfil:
angular.module('myApp', []).controller('namesCtrl', function($scope) { $scope.names = [ {name:'Jani',country:'Norge'}, {name:'Hege',country:'Sverige'}, {name:'Kai',country:'Danmark'} ]; });
Spara filen som namesController.js:
Använd sedan kontrollern i applikationen:
AngularJS exempel
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names"> {{ x.name + ', ' + x.country }} </li> </ul> </div> <script src="namesController.js"></script>
- Föregående sida AngularJS data binding
- Nästa sida AngularJS scop