기본적으로 테이블이 있고 각 행에 텍스트 입력과 확인란이 있습니다. 확인란은 입력에 기본값을 할당합니다. 내가 겪고있는 문제는 모든 체크 박스를 체크하기위한 체크 박스를 만들고 싶었지만 그것을 해봤지만 ngChange의 식을 평가하지 않았다는 것입니다.AngularJS - ng-checked가 트리거 변경을 트리거하지 않음
$scope.formData = {};
$scope.def_income = [];
$scope.master = false;
$scope.formData.income = [{ from:"", to:"", income:"" }]
$scope.addSal = function() {
this.formData.income.push({from:'',to:'',income:''});
};
$scope.delSal = function (index) {
if (index != 0) this.formData.income.splice(index,1);
}
$scope.masterToggle = function() {
this.master = this.master ? false : true;
}
$scope.defIncome = function (index) {
if (this.def_income[index]) this.formData.income[index].income="Default";
else this.formData.income[index].income = "";
}
2) index.html을 :
<a href="" ng-click="addSal()">Add</a>
<a href="" ng-model="master" ng-click="masterToggle()">Check all</a>
<table>
<thead>
<th>From</th>
<th>To</th>
<th>Income</th>
</thead>
<tbody>
<tr ng-repeat="income in formData.income">
<td><input kendo-date-picker class="form-control" ng-model="income.from" placeholder="From" /></td>
<td><input kendo-date-picker class="form-control" ng-model="income.to" /></td>
<td><input class="form-control" ng-model="income.income" /></td>
<td>Default income <input type="checkbox" ng-model="def_income[$index]" ng-checked="master" ng-change="defIncome($index)" /></td>
<td><a href="" ng-show="$index != 0" ng-click="delSal($index)">Delete</a></td>
</tr>
</tbody>
</table>
문제가 masterToggle입니다
1) Controller.js :
이
내가 가진 무엇 함수가 실행되면 효과적으로 $ scope.master 값을 토글하고 ng-checked, ch eckboxes는 체크되지만 checkbox 값이 변경 될 때 평가되어야하는 defIncome 함수는 그렇지 않습니다. (보다 일주일) AngularJS와에임 정말 새로운 그래서 나쁜 관행을 적용하고있어 경우
UPDATE 1 :)을 지적 주시기 바랍니다 :
그래서 내가 embee의 다음
$scope.masterToggle = function() {
this.master = this.master ? false : true;
for (var j = 0; j <= this.formData.salarios.length-1; j++) {
this.formData.salarios[j].salario = $scope.master ? "Salario mínimo" : "";
}
}
입력이 사용자 상호 작용에서 비롯된 경우 ngChange가 표현식 만 평가하므로 확인되지 않으므로 작동하지 않습니다. 어떻게 그럴 수 있니? 나는 $ watch에 대해 생각해 보았지만 그것을 구현하는 방법에 대해서는 잘 모르겠다. angle의 문서는 매우 설명 적이 지 않다. – davidaam
formData.income의 모든 소득에 대해 defIncome을 호출한다고 가정하면 $ scope.master 값을 설정 한 후 scope.masterToggle? – embee