Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs使用指令和$setValidity来验证一组动态下拉列表,无法获取要显示的错误消息_Javascript_Angularjs_Validation_Ng Repeat - Fatal编程技术网

Javascript Angularjs使用指令和$setValidity来验证一组动态下拉列表,无法获取要显示的错误消息

Javascript Angularjs使用指令和$setValidity来验证一组动态下拉列表,无法获取要显示的错误消息,javascript,angularjs,validation,ng-repeat,Javascript,Angularjs,Validation,Ng Repeat,我正在处理一段代码,该代码生成多个带有ng repeat的下拉列表,然后验证该下拉列表,以便所选值不能相同。到目前为止,我已经成功地使用ngModelCtrl-insidelink函数设置了有效性,但是我无法显示错误消息。这是密码 HTML: 对此已经有一段时间了,非常感谢您提供的任何帮助如果您能够创建一个工作演示,这将是一件非常棒的事情,有人能够提供更好的帮助。与ng模型表单字段关联的NgModelController不是作为周围表单元素FormController的属性而不是作用域的属性公开

我正在处理一段代码,该代码生成多个带有ng repeat的下拉列表,然后验证该下拉列表,以便所选值不能相同。到目前为止,我已经成功地使用ngModelCtrl-insidelink函数设置了有效性,但是我无法显示错误消息。这是密码

HTML:


对此已经有一段时间了,非常感谢您提供的任何帮助

如果您能够创建一个工作演示,这将是一件非常棒的事情,有人能够提供更好的帮助。与ng模型表单字段关联的NgModelController不是作为周围表单元素FormController的属性而不是作用域的属性公开吗?这里不应该是ng show=“attributes[key]。$error.dupTags”be ng show=“whateverYouNamedYourForm.attributes[key]。$error.dupTags”您好@IAmDranged是的,这是我粘贴代码时犯的一个错误,我会将其更改为FORMNAME.attributes[key]。$error.dupTags,但即使包含FORMNAME,错误消息没有显示Hello@Manish,我会看看是否可以在plunker中创建一些东西,感谢您的建议,如果您能够创建一个工作演示,这将是一件非常棒的事情,有人能够提供更好的帮助。与ng模型表单字段关联的NgModelController不是作为周围表单元素FormController的属性而不是作用域的属性公开吗?这里不应该是ng show=“attributes[key]。$error.dupTags”be ng show=“whateverYouNamedYourForm.attributes[key]。$error.dupTags”您好@IAmDranged是的,这是我粘贴代码时犯的一个错误,我会将其更改为FORMNAME.attributes[key]。$error.dupTags,但即使包含FORMNAME,错误消息没有显示Hello@Manish,我会看看是否可以在plunker中创建一些东西,谢谢你的建议
<fieldset ng-show="!item.periodic">

        <div class="form-group" ng-repeat="(key,value) in tags_limit track by $index">
            <label class="col-md-3 control-label" for="attributes[{{key+1}}]">val {{key+1}}</label>
            <div class="col-md-7">
                <select class="form-control attribute" name="attributes[{{key}}]" id="attributes[{{key+1}}]"
                        ng-options="attribute.id as attribute.name for attribute in documentAttributes | orderBy: 'name'"
                        ng-model="item.attributes[key]" unique-group>
                    <option value="">None</option>
                </select>
            </div>
            <small class="help-block" ng-show="FORMNAME.attributes[key].$error.dupTags">Please change tag, tags can not repeat</small>
        </div>
    </fieldset>
angular.module('indeksApp')
.directive('uniqueGroup', function () {
    return {
        restrict: 'A',
        scope:false,
        require: 'ngModel',
        link: function (scope, element, attrs,ngModelCtrl) {
            scope.$watch(attrs.ngModel,function(value){
                var tempArray=[];

                _.forEach(scope.$parent.item.attributes,function(val,key){
                    if (val === value)tempArray.push('key')
                });

                if(tempArray.length >1){
                    // is invalid
                    ngModelCtrl.$setValidity('dupTags',false)
                }else{
                    // is valid
                    ngModelCtrl.$setValidity('dupTags',true)
                }
            });
        }
    };
});