2016-09-26 4 views
0

저는 AngularJS를 배우고 있습니다. 이제 ng-init을 사용하여 변수를 초기화하고 있습니다. 그러나 변수 값은 항상 정의되지 않습니다. 내 코드는 다음과 같습니다 :ng-init을 사용하여 초기화 된 각도 변수는 항상 정의되지 않습니다.

<!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> 

나는 위의 코드를 실행하면 항상 내가 NG-초기화를 사용하여 초기화하는 경우에도 수량에 대해 "정의되지 않은"경고한다. 내 코드에 어떤 문제가 있습니까? 그렇게 초기화 할 수 없습니까?

+0

당신'은'NG-init'이 발사되기 전에 컨트롤러 alert'가 실행되고있다. – Claies

+1

일반적으로 컨트롤러의 변수를 항상 초기화해야합니다. 'ng-init'은 매우 구체적인 * 경우에만 [해당] (https://docs.angularjs.org/api/ng/directive/ngInit#!)입니다. – Claies

+0

많은 분들께 감사드립니다. 이제 나는 그것으로 분명하다. –

답변

1

템플릿의 ng-init이 앱 초기화 후에 호출되고 있습니다. {{수량}} 또는 {{비용}}을 템플릿에 넣으면 값이 예상대로 표시됩니다.

왜 ng-init을 사용하고 있습니까? 수량 및 비용에 대한 값을 하드 코딩하려면 컨트롤러에서 수행하는 것이 좋습니다. 그것은이에 대한 각 문서에서 찾고 가치, 그것은 유사한 접근 방식을 제안

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