2016-09-26 3 views
0

Ich lerne AngularJS. Jetzt initialisiere ich Variable mit ng-init. Aber der Variablenwert ist immer undefiniert. Mein Code ist unten:Mit ng-init initialisierte Winkelvariable ist immer undefiniert

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Angularjs popup</title> 
    <script src="http://localhost:8888/angular/angular-js.min.js"></script> 
</head> 
<body> 
<section ng-app="myApp" ng-controller="MainCtrl" ng-init="quantity=1;cost=5"> 

</section> 
</body> 
<script type="text/javascript"> 
var myApp = angular.module('myApp', []); 
myApp.controller('MainCtrl',function($scope){ 
    alert($scope.quantity) 
}) 
</script> 
</html> 

Wenn ich über Code ausführen, wird immer „undefiniert“ für die Mengen Alarmierung auch wenn ich ng-init initialisiert werden. Was ist falsch an meinem Code? Kann ich nicht so initialisieren?

+0

Ihre 'alert' in der Steuerung ausgeführt wird, bevor der' ng-init' gefeuert hat. – Claies

+1

Im Allgemeinen sollten Sie * immer * Variablen in Ihrem Controller initialisieren; 'ng-init' ist nur [angemessen] (https://docs.angularjs.org/api/ng/directive/ngInit#!) in * sehr spezifischen * Fällen. – Claies

+0

Vielen, vielen Dank. Jetzt bin ich klar damit. –

Antwort

1

ng-init in der Vorlage wird nach der Initialisierung der App aufgerufen. Wenn Sie {{Menge}} oder {{Kosten}} in Ihre Vorlage eingeben würden, würden Ihre Werte wie erwartet angezeigt.

Darf ich fragen, warum verwenden Sie ng-init? Wenn Sie Ihre Werte für Menge und Kosten fest codieren möchten, tun Sie das besser in Ihrem Controller. Es lohnt sich die Winkel docs dafür suchen, es schlägt vor, einen ähnlichen Ansatz

https://docs.angularjs.org/api/ng/directive/ngInit