我正在对某些数据进行第一次ng-repeat循环,并对其他数据进行另一次ng-repeat循环。我在内部ng-repeat中添加了ng-change,它循环一些数据以填充带有“options / values”的select元素,ng-change必须监听select元素中的更改并在每次更改值时调用函数但是不会发生这种情况。
这是html代码
<tr ng-repeat="memo in memos" class="no-animate">
<td class="text-center">{{memo.memoStatus | localize:'ar'}}</td>
<td class="text-center">
{{memo.memoRequiredDate | date: 'yyyy-MM-dd'}}
<p ng-hide="memo.memoRequiredDate">----</p>
</td>
<td class="text-center">
<select ng-model="newInfo.selectedConsultantIndex" ng-change="updateConsultant(memo.caseId, newInfo.selectedConsultantIndex)" class="form-control">
<option value="">-- المستشارين --</option>
<option ng-repeat="consultant in consultants track by $index" value="{{$index}}">{{consultant.firstName}} {{consultant.lastName}}</option>
</select>
</td>
<td class="text-center">{{memo.court[0].name}}</td>
<td class="text-center">
<p ng-repeat="defendant in memo.defendant">
{{defendant.user.firstName}} {{defendant.user.lastName}} - {{defendant.role[defendant.role.length - 1]}}
</p>
</td>
<td class="text-center">
<p ng-repeat="client in memo.client">
{{client.user.firstName}} {{client.user.lastName}} - {{client.role[client.role.length - 1]}}
</p>
</td>
<td class="text-center">إختبارية</td>
<td class="text-center">{{memo.caseNumber}}</td>
</tr>
这是JS代码
$scope.updateConsultant = function(){
console.log('hello world');
}
答案 0 :(得分:1)
您应该尝试使用ngOptions进行选择: https://docs.angularjs.org/api/ng/directive/ngOptions
答案 1 :(得分:1)
问题原来是由另一个指令“angular-print printTable”引起的,该指令创建一个只包含文本值的新表,然后覆盖旧表。
答案 2 :(得分:0)
尝试使用观察者而不是ng-change
$scope.$watch('newInfo.selectedConsultantIndex', function() {
updateConsultant(...)
});
您可能必须构建一个数组或其他数据结构,以支持您用于更改的任何逻辑。