Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了AngularJS指令:模糊之后不会触发ng-click大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
DEMO

虑以下示例:

<input type="text" ng-model="client.phonenumber" phone-number>
<button ng-click="doSomething()">Do Something</button>
.directive("phonenumber",function($compilE) {
  return {
    reStrict: 'A',scope: true,link: function(scope,element,attrs) { 
      scope.mobilenumberIsValid = true;

      var errorTemplate = "<span ng-show='!mobilenumberIsValid'>Error</span>";

      element.after($compile(errorTemplatE)(scopE)).on('blur',function() {
        scope.$apply(function() { 
          scope.mobilenumberIsValid = /^\d*$/.test(element.val());
        });
      });
    }  
  };
});

看着demo,如果在手机号码末尾添加“a”,点击按钮,doSomething()就不会被调用.如果再次单击该按钮,则调用doSomething().

为什么第一次没有调用Something()?任何想法如何解决这个问题?

注意:保持模糊验证是很重要的.

这里: http://jsbin.com/epEBECAy/25/edit

正如其他答案所解释的那样,按钮在按钮发生之前的一个onmouseup事件之前被跨越的外观移动,从而导致您遇到的问题.完成你想要的最简单的方法是以这样的方式来调整窗体,使得跨度的外观不会导致按钮移动(这通常是从UX角度来看是一个好主意).您可以通过将输入元素包装在具有白色空间的样式的div中:Nowrap来实现.只要跨度有足够的水平空间,按钮将不会移动,并且ng-click事件将按预期工作.

<div id="wrapper">
    <div style='white-space:Nowrap;'>
        <input type="text" ng-model="client.phonenumber" phone-number>
    </div>
    <button ng-click="doSomething()">Do Something</button>
</div>

大佬总结

以上是大佬教程为你收集整理的AngularJS指令:模糊之后不会触发ng-click全部内容,希望文章能够帮你解决AngularJS指令:模糊之后不会触发ng-click所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。