您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

AngularJS input [placeholder]指令被ng-model破坏

AngularJS input [placeholder]指令被ng-model破坏

您的样本中仅有几处修改

app.directive('placehold', function() {
  return {
    restrict: 'A',
    require: 'ngModel',
    link: function(scope, element, attr, ctrl) {

      var value;

      var placehold = function () {
          element.val(attr.placehold)
      };
      var unplacehold = function () {
          element.val('');
      };

      scope.$watch(attr.ngModel, function (val) {
        value = val || '';
      });

      element.bind('focus', function () {
         if(value == '') unplacehold();
      });

      element.bind('blur', function () {
         if (element.val() == '') placehold();
      });

      ctrl.$formatters.unshift(function (val) {
        if (!val) {
          placehold();
          value = '';
          return attr.placehold;
        }
        return val;
      });
    }
  };
});

您可以在此处进行测试:http ://plnkr.co/edit/8m54JO?p=preview

不确定它是否是最佳解决方案,无论如何都可以。即使键入相同的文本,也就是占位符属性中的文本,也会导致它检查模型的焦点值。

其他 2022/1/1 18:17:42 有682人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶