$ ctrl ist das Ansichtsmodellobjekt in Ihrem Controller. Dieser $ ctrl ist ein Name, den Sie (vm ist ein weiterer häufigste) wählen, wenn Sie Ihren Code überprüfen Sie die Definition als $ctrl = this;
sehen können, sein so im Grunde das this
Schlüsselwort der Reglerfunktion.
Also jetzt, wenn Sie $ctrl.latestMeasurement = 'someValue'
verwenden, dann ist es wie Sie eine Eigenschaft latestMeasurement
Controller-Funktion hinzufügen.
Jetzt, wie man es in HTML benutzt?
Um die latestMeasurement Eigenschaft in HTML-Zugriff auf Ihren Code <h1>{{$ctrl.latestMeasurement}}</h1>
haben muss (H1-Tag ist nur ein Beispiel.)
Hier $ ctrl unterscheidet von dem, was ich oben auf Steuerteil erläutert. Hier $ ctrl ist der Wert controllerAs
Eigentum des Controllers. Aber $ctrl
ist der Standardwert der controllerAs
-Eigenschaft, so dass Ihr Code die controllerAs -Eigenschaft nicht definiert, sodass Angular den Standardwert $ctrl
in HTML annimmt.
Hier werden die meisten Menschen verwirrt. Also lassen Sie mich erklären,
in Ihrem neuen Controller Angenommen, Sie haben Ihre this
Schlüsselwort Variable vm
erklärt, und Sie Ihre controllerAs
Eigenschaft auf myCtrl
, das heißt;
controllerAs: 'myCtrl'
bei der Definition der Controller-Eigenschaften.
var vm = this;
in Ihrer Controller-Funktion.
In diesem Fall müssen Sie vm
für die Einstellung von Werten verwenden, und in HTML müssen Sie myCtrl
verwenden. Zum Beispiel
in JS Reglerfunktion vm.test = 'Hello world';
in HTML <span ng-bind="myCtrl.test"></span>
Das Ergebnis Hallo Welt wird auf Ihrer Seite angezeigt werden.
Warum $ ctrl und nicht $ scope?
Das View-Modell Objektmodell-Konzept wird in AngularJS 1.5 eingeführt, es ist tatsächlich Teil der Migration zu Angular 2, wo $ Scope nicht mehr existiert. Also haben sie in 1.5 einen neuen Ansatz eingeführt, aber $ scope nicht vollständig entfernt.
Ich hoffe, die Antwort hat geholfen.
Für grundlegende Javascript Konzepte können Sie http://javascriptissexy.com/16-javascript-concepts-you-must-know-well/
Für detailliertere AngularJS $ ctrl Konzept sehen Sie https://johnpapa.net/angularjss-controller-as-and-the-vm-variable/
Es könnte so einfach sein. Danke für die ausführliche Erklärung. –