搜索

首页  >  问答  >  正文

javascript - angularjs ngblur不生效 onblur生效,为什么?

<input class="detail-reply"
        id="replyInput"
        type="text"
        ng-model="$ctrl.replyString">

这个input使用ng-blur是不会触发的,但是直接DOM绑定onblur事件是会触发,为什么?

淡淡烟草味淡淡烟草味2815 天前861

全部回复(2)我来回复

  • 世界只因有你

    世界只因有你2017-06-30 09:59:53

    你用的是1还是2如果是2的话,可以
    <input type="text" [(ngModel)]="myModel" (blur)="onBlurMethod()">

    export class AppComponent { 
      myModel: any;
      constructor(){
        this.myModel = '123';
      }
      onBlurMethod(){
       alert(this.myModel) 
      }
    }

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-30 09:59:53

    angular1的ng-blur要通过指令才能使用,指令的作用其实就是将ng-blur绑定的事件应用到onblur事件

    app.directive('ngBlur', ['$parse', function($parse) {
      return function(scope, element, attr) {
        var fn = $parse(attr['ngBlur']);
        element.bind('blur', function(event) {
          scope.$apply(function() {
            fn(scope, {$event:event});
          });
        });
      }
    }]);

    回复
    0
  • 取消回复