0

私は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>

上記のコードを実行すると、ng-init を使用して初期化した場合でも、数量に対して常に「未定義」と警告されます。コードの何が問題になっていますか? そのように初期化することはできませんか?

4

1 に答える 1

1

テンプレートの ng-init は、アプリの初期化後に呼び出されています。テンプレートに {{ 数量 }} または {{ コスト }} を入れると、期待どおりに値が表示されます。

お尋ねしてもよろしいですか、なぜ ng-init を使用しているのですか? 数量とコストの値をハードコーディングしたい場合は、コントローラーでそれを行う方がよいでしょう。これについては、角度のあるドキュメントを見る価値があります。同様のアプローチが提案されています

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

于 2016-09-26T15:34:32.717 に答える