想象一下:
http://jsfiddle.net/wcuuj8do/9/
我目前的代码:
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.rowData = [];
$scope.addRow = function(title, number)
{
$scope.rowData.push({
'title': title,
'number': number
});
};
$scope.addRow('Car', '1200');
$scope.addRow('Car','');
}
当我在第一个输入(T1)中键入“Car”然后输入一些文本进行输入(N1)时,我想要角度来检查每个T#输入是否具有与(T1)相同的值。如果禁用(或只读)与当前检查的T#输入相关的所有N#输入。
之后当我从T#字段中删除重复值时,相关的T#字段应该返回到默认输入状态(删除禁用/只读)
这可以通过添加新动态输入来实现,如小提琴中所示。
答案 0 :(得分:0)
您应该创建一个方法来执行检查部分。此方法应绑定到blur
输入上的change
或T#
事件,具体取决于您的需求。
该方法将检查双重性,如果找到,则标记该对象,例如添加新属性disabled: true
。然后,此属性将通过N#
指令在ng-disabled
字段的模板中使用。
以下是您的更新小提琴:http://jsfiddle.net/wcuuj8do/10/
请注意新方法$scope.checkDuplicity
和新绑定:
<tr ng-repeat="(key, item) in rowData">
<td>T{{ ($index+1) }}: <input type="text" ng-model="rowData[key].title" ng-change="checkDuplicity(key)" value="" style='margin-bottom:15px' /></td>
<td>N{{ ($index+1) }}: <input type="text" ng-model="rowData[key].number" value="" style='margin-bottom:15px' ng-disabled="rowData[key].disabled" /></td>
</tr>