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行您没有要求我深入测试您的代码:-)您必须这样做。我只回答了您的基本问题。我已经更新了我的答案。请检查。