【发布时间】:2013-07-22 10:48:50
【问题描述】:
在阅读了许多教程之后,我正在构建我的第一个合适的 angular.js 应用程序。我遇到了ngChange 指令的问题。每次用户更改下拉列表的值时,我都尝试使用它来调用函数。我发现它在页面加载时多次调用该函数,并且每次选择该选项时也会多次调用该函数。
我整理了this 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"]
}
我知道这很可能是由于我对角度方法的不当使用/理解造成的。我很感激能解决这个小例子的所有失败的答案。
【问题讨论】:
标签: javascript angularjs html-select