Угловая переменная, инициализированная с помощью ng-init, всегда не определена

Я изучаю AngularJS. Теперь я инициализирую переменную с помощью 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>

Когда я запускаю приведенный выше код, он всегда предупреждает "undefined" для количества, даже если я инициализировал с помощью ng-init. Что не так с моим кодом? Могу ли я так не инициализироваться?

1 ответ

Решение

ng-init в шаблоне вызывается после инициализации приложения. Если бы вы поместили {{количество}} или {{стоимость}} в свой шаблон, вы бы увидели, что ваши значения отображаются в соответствии с ожиданиями.

Могу я спросить, почему вы используете ng-init? Если вы хотите жестко закодировать ваши значения количества и стоимости, вам лучше сделать это в контроллере. Стоит посмотреть на угловые документы для этого, он предлагает аналогичный подход

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

Другие вопросы по тегам