经过许多教程后,我正在构建我的第一个适当的 angular.js 应用程序。我遇到了该ngChange
指令的问题。每次用户更改下拉列表的值时,我都尝试使用它来调用函数。我发现它在页面加载时多次调用该函数,并且每次选择该选项时也会多次调用该函数。
我已经把这个 jsfiddle放在一起,它展示了我遇到的问题。
我想知道为什么它会表现出这种行为,以及如何实现我想要的结果,即每个选项更改一个函数调用并且不调用change()
页面加载。(第二个标准对我的应用程序来说不太重要,但我想知道如何抑制这种行为)。
我已经为那些可能能够立即发现错误的人复制了下面的代码。
HTML
<body ng-app ng-controller="Controller">
<div>
<h2>Number of changes: {{numOfChanges}}</h2>
<select ng-change="{{change()}}" ng-model="currentSelection">
<option ng-repeat="option in options">{{option}}</option>
</select>
</div>
</body>
JavaScript
Controller = function($scope) {
$scope.numOfChanges = 0;
$scope.change = function() {
$scope.numOfChanges++;
}
$scope.options = ["do", "ray", "me", "far", "so", "la", "tee","dah"]
}
我知道这很可能是由于我对角度方法的使用/理解不当。我很感激能解决这个小例子的所有失败的答案。