Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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 ng fab表单的服务器错误_Javascript_Angularjs_Forms_Validation - Fatal编程技术网

Javascript AngularJS ng fab表单的服务器错误

Javascript AngularJS ng fab表单的服务器错误,javascript,angularjs,forms,validation,Javascript,Angularjs,Forms,Validation,我在AngularJS端和服务端使用验证(例如用于重复值检查),并希望向用户公开这些错误。如果没有,我可以构建自定义服务器错误指令,并像这样使用它: <input type="number" id="level" name="level" ng-model="vm.record.level" server-error required> <div ng-messages="vm.form.role_level.$error"> <p ng-message

我在AngularJS端和服务端使用验证(例如用于重复值检查),并希望向用户公开这些错误。如果没有,我可以构建自定义服务器错误指令,并像这样使用它:

<input type="number" id="level" name="level" ng-model="vm.record.level"
  server-error
  required>
<div ng-messages="vm.form.role_level.$error">
  <p ng-message="server">{{ vm.errors.level }}</p>
</div>

我自定义显示服务器错误消息,但无法显示动态错误文本。我想问题与范围继承有关。有什么办法可以达到预期的效果吗?

我刚刚找到了一种方法:

添加自定义属性,以保存服务器错误消息值并查看其中的错误

<input type="number" id="level" name="level" ng-model="vm.record.level"
  validation="{{ vm.errors.level }}
  server-error
  required>

我刚刚找到了一种方法:

添加自定义属性,以保存服务器错误消息值并查看其中的错误

<input type="number" id="level" name="level" ng-model="vm.record.level"
  validation="{{ vm.errors.level }}
  server-error
  required>

我建议使用$asyncValidators而不是$SetValidationangular@1.3.2开

app.directive('username', function($q, $timeout) {
  return {
    require: 'ngModel',
    link: function(scope, elm, attrs, ctrl) {
    var usernames = ['Jim', 'John', 'Jill', 'Jackie'];

      ctrl.$asyncValidators.username = function(modelValue, viewValue) {

        if (ctrl.$isEmpty(modelValue)) {
          // consider empty model valid
          return $q.when();
        }

        var def = $q.defer();

        $timeout(function() {
          // Mock a delayed response
          if (usernames.indexOf(modelValue) === -1) {
            // The username is available
            def.resolve();
          } else {
            def.reject();
          }

        }, 2000);

        return def.promise;
      };
    }
  };
});
(示例取自

然后,您可以将消息添加到自己的验证模板中:

angular.module('exampleApp', [
    'ngFabForm'
])
    .config(function (ngFabFormProvider)
    {
        ngFabFormProvider.extendConfig({
            validationsTemplate : 'path/to/your-fabulous-validation-template.html'
        });
    });
并在模板中添加:

<li ng-message="username">I'm not valid!!! ;(</li>
  • 我无效;(
  • 模块的github页面上也有一个问题:


    对于一个更干净的解决方案,必须有一个接口,它还不存在,但您可以随时使用。

    我建议使用$asyncValidators而不是$SetValidationangular@1.3.2开

    app.directive('username', function($q, $timeout) {
      return {
        require: 'ngModel',
        link: function(scope, elm, attrs, ctrl) {
        var usernames = ['Jim', 'John', 'Jill', 'Jackie'];
    
          ctrl.$asyncValidators.username = function(modelValue, viewValue) {
    
            if (ctrl.$isEmpty(modelValue)) {
              // consider empty model valid
              return $q.when();
            }
    
            var def = $q.defer();
    
            $timeout(function() {
              // Mock a delayed response
              if (usernames.indexOf(modelValue) === -1) {
                // The username is available
                def.resolve();
              } else {
                def.reject();
              }
    
            }, 2000);
    
            return def.promise;
          };
        }
      };
    });
    
    (示例取自

    然后,您可以将消息添加到自己的验证模板中:

    angular.module('exampleApp', [
        'ngFabForm'
    ])
        .config(function (ngFabFormProvider)
        {
            ngFabFormProvider.extendConfig({
                validationsTemplate : 'path/to/your-fabulous-validation-template.html'
            });
        });
    
    并在模板中添加:

    <li ng-message="username">I'm not valid!!! ;(</li>
    
  • 我无效(
  • 模块的github页面上也有一个问题:


    对于一个更干净的解决方案,必须有一个接口,它还不存在,但您可以一直使用。

    然而,我希望有一个更干净的解决方案,而不是为每个字段创建另一个观察者……然而,我希望有一个更干净的解决方案,而不是为每个字段创建另一个观察者……而这是一个有效的ap方法是,我不尝试只使用自定义服务器验证(如唯一性检查)。我还尝试处理一些情况,例如,我忘记在html输入上设置maxlength,服务器验证失败,错误是该值太长。虽然这是一种有效的方法,但我不尝试只使用自定义服务器验证(如唯一性检查)。我还尝试处理一些情况,例如,我忘记在html输入上设置maxlength,服务器验证失败,错误是该值太长。