将信息传递给指令以匹配密码

时间:2017-08-11 12:06:52

标签: angularjs angularjs-directive angularjs-ng-model angularjs-ng-form

我在我的控制器中遇到某些条件时尝试向我的浮动占位符标签添加错误

但是,我不确定最好的解决方法,而且我目前的实施似乎并没有检测到指令中的属性更改(自定义错误保持设置为" test& #34;。)

这是我现在所拥有的:

HTML:

<input type="password" float-placeholder
       custom-error="test" placeholder="Confirm password"
       required name="passwordSecond" id="passwordSecond"
       ng-model="vs.PasswordSecond" />

指令:

angular.module('myApp').directive('floatPlaceholder', function ($window) {
  return {
    restrict: 'A',
    scope: {
      customError: '@'
    },
    link: function (scope, element, attrs) {
      element.after("<label class='floating-placeholder'>" + attrs.placeholder + "</label>");
      var label = angular.element(ele.parent()[0].getElementsByClassName('floating-placeholder'));

      element.on('blur', function() {
        if (ele.val().length > 0) { 
          if (scope.customError) {
            label.text(attrs.placeholder + ' - ' + scope.customError);
          }
        }
      }
    }
  };
});

控制器:

angular.module('myApp').controller('SignupController', function factory() {
  _this.confirmPassword = () => {
    if(_this.PasswordFirst !== _this.PasswordSecond){
      angular.element(signupForm.passwordSecond).attr('custom-error', _this.Error);
    }
  }
});

我正在使用Angular 1.6

1 个答案:

答案 0 :(得分:0)

(我的基础是你说“自定义错误保持设置为”测试“')

custom-error正在查找“test”变量,而不是“test”的字符串值。您是否尝试在控制器中设置变量测试并更新?