加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 以ng-minlength为单位的动态值

发布时间:2020-12-17 07:26:43 所属栏目:安全 来源:网络整理
导读:我有一个名为Config的常量,它包含一个task.minlength = 3属性. 我在$rootScope中追加常量: .run(function($rootScope,Config) { $rootScope.Config = Config;}) 在模板中,我想将Config.task.minlength值设置为输入的ng-minlength指令: input type="text" n
我有一个名为Config的常量,它包含一个task.minlength = 3属性.

我在$rootScope中追加常量:

.run(function($rootScope,Config) {
  $rootScope.Config = Config;
})

在模板中,我想将Config.task.minlength值设置为输入的ng-minlength指令:

<input type="text" ng-model="newTask" placeholder="Write a new task..." required ng-minlength="{{ Config.task.minlength }}">

哪个根据DevTools正确解析:

但是,验证不会被触发:

$scope.form.$error['minlength'] // undefined

当我只写3而不是插入Config.task.minlength时,它工作正常.

ng-minlength的值是否必须硬编码?有没有解决方法?

ngModelController不以任何方式0700或 $eval的值为 ngMinlength,因此它只获取静态整数值.

我创建了自己的指令,使用$observe,
这是example:

app.directive('myMinlength',function(){
  return {
    require: 'ngModel',link: function(scope,elm,attr,ngModel){

      var minlength = 0;

      var minLengthValidator = function(value){     
        var validity = ngModel.$isEmpty(value) || value.length >= minlength;
        ngModel.$setValidity('minlength',validity);
        return validity ? value : undefined;
      };

      attr.$observe('myMinlength',function(val){
         minlength = parseInt(val,10);
         minLengthValidator(ngModel.$viewValue);
      });


      ngModel.$parsers.push(minLengthValidator);
      ngModel.$formatters.push(minLengthValidator);
    } 
  };
});

像这样使用它:

<input type="text" name="something" my-minlength="{{config.min}}" ng-model="something">

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读