사용자가 필터링 할 목록에서 값을 선택할 수 있도록하는 AngularJS 지시문이 있습니다. 여기에 표시되는 아주 간단한 개념 : 나는 그들 모두가 의도하지 않은 선택 체크 박스 중 하나를 클릭하면AngularJS 체크 박스 필터 지시문
문제입니다. 내 지시어는 매우 간단하므로 왜 이런 일이 발생하는지 잘 모르겠습니다.
$scope.tempFilter = {
id: ObjectId(),
fieldId: $scope.available[0].id,
filterType: 'contains'
};
$scope.toggleCheck = function (id) {
var values = $scope.tempFilter.value;
if (!values || !values.length) {
values = $scope.tempFilter.value = [];
}
var idx = values.indexOf(id);
if (idx === -1) {
values.push(id);
} else {
values.splice(idx, 1);
}
};
$scope.valuesListValues = function (id) {
return $scope.available.find(function (f) {
return f.id === id;
}).values;
};
데이터 유사한 : 다음
$scope.available = [{
id: 23,
name: 'Store'
values: [
{ id: 124, name: "Kansas" },
{ id: 122, name: "Florida" }, ... ]
}, ... ]
뷰 로직은 :
<ul class="list-box">
<li ng-repeat="val in valuesListValues(tempFilter.fieldId)">
<div class="checkbox">
<label ng-click="toggleCheck(val.id)">
<input ng-checked="tempFilter.value.indexOf(val.id) === -1"
type="checkbox"> {{val.name}}
</label>
</div>
</li>
</ul>
먼저 오프 그것을 toggleCheck
화재 다음 선택 체크 박스 주위 코드는 두 번이지만 올바른 데이터를 채 웁니다 (두 번째로 내 코드에서 제거됩니다).
두 번째 발사 후 모든 상자를 확인합니다 ... 아이디어가 있습니까?
체크리스트에 대한 지원 기능이 내장 된 좋은 지시어입니다 : http://vitalets.github.io/checklist-model/ – amcdnl