Angularjs 如何在删除时验证行?

Angularjs 如何在删除时验证行?,angularjs,Angularjs,我创建了一个指令,该指令验证行并显示错误,即某些行具有重复值,代码如下: app.directive('isUniqueRow', function() { return { require: 'ngModel', scope: { ngModel: '=', isUniqueRow: '=' }, link: fun

我创建了一个指令,该指令验证行并显示错误,即某些行具有重复值,代码如下:

  app.directive('isUniqueRow', function() {
        return {
            require: 'ngModel',
            scope: {
                ngModel: '=',
                isUniqueRow: '='
            },
            link: function(scope, ele, attrs, c) {
                var rows = scope.isUniqueRow;
                scope.$watch('ngModel', function(v) {
                    if(!v || v == '') {
                      c.$setValidity('unique', true);
                      return;
                    }


                    var count = 0;
                    for(var i=0;i<rows.length;i++) {
                        if(rows[i].key == v) {
                            count++;
                        }
                    }
                    c.$setValidity('unique', count < 2);
                });
            }
        }
    })
app.directive('isUniqueRow',function(){
返回{
要求:'ngModel',
范围:{
ngModel:“=”,
isUniqueRow:“=”
},
链接:功能(范围、元素、属性、c){
var rows=scope.isUniqueRow;
范围:$watch('ngModel',功能(v){
如果(!v | | v==''){
c、 $setValidity('unique',true);
返回;
}
var计数=0;

对于(var i=0;i只需使用以下内容修改您的
$watch
代码:

scope.$watch('isUniqueRow', function() {             // <== Modified line
  var v = scope.ngModel;                             // <== New line
  if(!v || v == '') {
    c.$setValidity('unique', true);
    return;
  }


  var count = 0;
  for(var i=0;i<rows.length;i++) {
    if(rows[i].key == v) {
      count++;
    }
  }
  c.$setValidity('unique', count < 2);
}, true);                                           // <== Modified line

安古拉斯普朗克
文件。写(“”);
必须是唯一的
德尔
添加

它的错误;1)类型测试…2)添加行…3)在第二行添加行…3)类型测试4)添加行5)编辑第一行到测试1 6)错误仍然显示在第2行您没有要求我深入测试您的代码:-)您必须这样做。我只回答了您的基本问题。我已经更新了我的答案。请检查。