使用Angular

时间:2017-10-27 15:14:29

标签: javascript jquery html angularjs

想象一下:

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#字段应该返回到默认输入状态(删除禁用/只读)

这可以通过添加新动态输入来实现,如小提琴中所示。

1 个答案:

答案 0 :(得分:0)

您应该创建一个方法来执行检查部分。此方法应绑定到blur输入上的changeT#事件,具体取决于您的需求。

该方法将检查双重性,如果找到,则标记该对象,例如添加新属性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>