Heim > Web-Frontend > js-Tutorial > Hauptteil

Ausführliche Erläuterung der Verwendung von AngularJS controller_AngularJS

WBOY
Freigeben: 2016-05-16 15:11:13
Original
1958 Leute haben es durchsucht

Die Rolle des Controllers in Angularjs besteht darin, die Ansicht zu verbessern. Es handelt sich tatsächlich um eine Funktion, die zum Hinzufügen zusätzlicher Funktionen zum Bereich in der Ansicht verwendet wird. Wir verwenden ihn, um den Anfangszustand des Bereichsobjekts festzulegen und benutzerdefiniertes Verhalten hinzuzufügen. .

Wenn wir einen Controller auf der Seite erstellen, generiert Angularjs einen $scope und übergibt ihn an den Controller. Da Angularjs den Controller automatisch instanziiert, müssen wir nur den Konstruktor schreiben. Das folgende Beispiel zeigt die Controller-Initialisierung:

function my Controller($scope){
 $scope.msg="hello,world!"; 
}
Nach dem Login kopieren

Die obige Methode zum Erstellen eines Controllers verschmutzt den globalen Namespace. Ein vernünftigerer Ansatz besteht darin, ein Modul zu erstellen und dann den Controller wie folgt im Modul zu erstellen:

var myApp=angular.module("myApp",[]);
myApp.controller("myController",function($scope){
 $scope.msg="hello,world!";
})
Nach dem Login kopieren

Verwenden Sie den integrierten Befehl ng-click, um Schaltflächen, Links und andere DOM-Elemente an Klickereignisse zu binden. Die ng-click-Direktive bindet das Mouseup-Ereignis im Browser an den Ereignishandler, der für das DOM-Element festgelegt ist (wenn der Browser beispielsweise ein Klickereignis für ein DOM-Element auslöst, wird die Funktion aufgerufen). Ähnlich wie im vorherigen Beispiel sieht die Bindung so aus:

<div ng-controller="FirstController">
<h4>The simplest adding machine ever</h4>
<button ng-click="add(1)" class="button">Add</button>
<a ng-click="subtract(1)" class="button alert">Subtract</a>
<h4>Current count: {{ counter }}</h4>
</div>
Nach dem Login kopieren

Schaltflächen und Links sind an eine Operation im internen $scope gebunden, die die entsprechende Methode aufruft, wenn auf ein beliebiges Element geklickt wird. Beachten Sie, dass beim Festlegen der aufzurufenden Funktion auch ein Parameter (add(1)) in Klammern

übergeben wird
app.controller('FirstController', function($scope) {
$scope.counter = 0;
$scope.add = function(amount) { $scope.counter += amount; };
$scope.subtract = function(amount) { $scope.counter -= amount; };
});
Nach dem Login kopieren

Der größte Unterschied zwischen Angularjs und anderen Frameworks besteht darin, dass der Controller nicht für die Durchführung von DOM-Operationen, Formatierungs- oder Datenoperationen und Statusverwaltungsoperationen außer dem Speichern des Datenmodells geeignet ist. Er ist lediglich eine Brücke zwischen der Ansicht und dem $scope . .

Controller-Verschachtelung (Bereich enthält Bereich)

Jeder Teil einer AngularJS-Anwendung hat einen übergeordneten Bereich, unabhängig davon, in welchem ​​Kontext er gerendert wird. Für die Ebene, auf der sich ng-app befindet, ist der übergeordnete Bereich $rootScope.

Wenn AngularJS eine Eigenschaft im aktuellen Bereich nicht finden kann, sucht es standardmäßig im übergeordneten Bereich danach. Wenn AngularJS das entsprechende Attribut nicht finden kann, sucht es entlang des übergeordneten Bereichs nach oben, bis es $rootScope erreicht. Wenn es in $rootScope nicht gefunden wird, wird das Programm weiter ausgeführt, aber die Ansicht wird nicht aktualisiert.

Schauen wir uns dieses Verhalten anhand eines Beispiels an. Erstellen Sie einen ParentController, der ein Benutzerobjekt enthält, und erstellen Sie dann einen ChildController, um auf dieses Objekt zu verweisen:

app.controller('ParentController', function($scope) {
$scope.person = {greeted: false};
});
app.controller('ChildController', function($scope) {
$scope.sayHello = function() {
$scope.person.name = 'Ari Lerner';
};
});
Nach dem Login kopieren

Wenn wir den ChildController innerhalb des ParentControllers platzieren, ist der übergeordnete Bereich des $scope-Objekts des ChildControllers das $scope-Objekt des ParentControllers. Gemäß dem Mechanismus der prototypischen Vererbung können wir im untergeordneten Bereich auf das $scope-Objekt von ParentController zugreifen.

<div ng-controller="ParentController">
<div ng-controller="ChildController">
<a ng-click="sayHello()">Say hello</a>
</div>
{{ person }}
</div>
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für Ihr Studium hilfreich sein und Ihnen helfen, sich mit dem AngularJS-Controller vertraut zu machen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage