我試圖動態填充一些複選框並使用選定的項目來過濾數據。複選框ng-click發射兩次
我的HTML
<div class="form-group" ng-repeat="category in categories">
<label class="checkbox" >
<input type="checkbox" ng-model="selection.ids[category.code]" id="{{category.code}}"
ng-click="toggleSelection(category)"
/>
{{category.description}}
</label>
</div>
<div class="form-group">
<button type="submit" ng-click="filterSubmit();" class="btn btn-default">
<span class="glyphicon glyphicon-search"></span> Filter
</button>
</div>
在我的控制,我使用這個JavaScript,而不是與大多數其他的例子我見過。
$scope.toggleSelection = function (category) {
var idx = $scope.selection.indexOf(category);
console.log('start '+ idx);
// is currently selected
if (idx > -1) {
$scope.selection.splice(idx, 1);
}
// is newly selected
else {
$scope.selection.push(category);
}
};
可悲的是我看到控制檯-1,0 所以我最終沒有選擇複選框登錄兩次,一次,一次。
當我使用grunt構建應用程序並將其放置在網絡服務器上時,它可以正常工作,但是當我使用grunt服務器運行它時,它會不斷調用控制器兩次。
它有助於使用ng-change而不是ng-click嗎? – ABOS
沒有足夠的信息來複制這個問題,你發佈的代碼是罰款:http://plnkr.co/edit/9WT5Q1MIAgLnn8AxWJqS?p=preview – dfsq
嗨@abos,雖然我不明白爲什麼......確實有幫助...? – bond708