如何在onblur事件中获取$ scope或$ element并在onblur事件中运行函数?

能够

onblur在所有输入字段中添加了一个事件,并且我想事件运行获取$scope但是当我用来获取元素时,我得到了$elementonblurthis.$elementundefined

当我仅记录此内容时,将获得输入标签。我如何获得$scope$element参加onblur活动?

码:

constructor($document, $element, $scope) {
   this.$document = $document;
   this.$element = $element;
   this.$scope= $scope;
}

FunCall() {
  const formElements = this.$element[0].querySelectorAll('input');
  const watchElement = angular.element(formElements[0]);
  console.log(this);

  watchElement[0].onblur = function() {
    console.log(this); // html input element
    console.log(this.$scope); // undefined
    console.log(this.$element); // undefined
  };
}

在第一个日志上,我得到了正确的信息,这就是控制器。在第二个日志中,在onblur事件内部,我获取了HTML元素,并获取undefined$scope$element我如何获得控制器,就像onblur事件中的第一个控制器一样

我想在onblur事件内部运行一个函数,但这没有用:

watchElement[0].onblur = function() {
    this.runSecondFunction();
};

runSecondFunction() {
 console.log('test 2nd function');
}
莫什·费

function()在javascript中也是构造函数。因此,您可以通过创建对象new例如:

function ImAFunctionButCanBeConstructor() {
  this.foo = 'bar';
  this.print = function() {
    console.log(this.foo);
  }
}

const myObj = new ImAFunctionButCanBeConstructor();
myObj.print();

如果是事件处理程序,this则是指DOM元素

为了避免这种情况(仅在不需要该引用的情况下),可以使用箭头函数代替常规函数,因此this 将引用封闭的上下文,该上下文是该类的实例。

class MyComp {
  constructor($document, $element, $scope) {
    this.$document = $document;
    this.$element = $element;
    this.$scope = $scope;

    this.FunCall();
  }

  FunCall() {
    const formElements = this.$element[0].querySelectorAll("input");
    const watchElement = angular.element(formElements[0]);
    //console.log(this);

    watchElement[0].onblur = () => {
      //console.log(this);
      //console.log(this.$scope);
      console.log(this.$element);
    };
  }
}

angular.module("app", []).component("myComp", {
  controller: MyComp,
  template: `
      <input type="text" placeholder="watch me blur" />
    `
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div id="app" ng-app="app">
  <my-comp></my-comp>
</div>

https://codesandbox.io/s/musing-moore-kohg8?file=/src/index.js

只需提一下,还有更多的方法可以做到这一点


参考文献

https://stackoverflow.com/a/1963370/863110

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在茉莉花测试中测试$ scope。$ on事件?

来自分类Dev

如何在onBlur事件中删除DIV元素的所有子元素?

来自分类Dev

如何在$ scope。$ broadcast上跟踪事件?

来自分类Dev

如何在angularjs的指令函数中获取当前的Controller $ scope?

来自分类Dev

如何在angularjs的指令函数中获取当前的Controller $ scope?

来自分类Dev

如何在指令中从templateUrl运行$ scope函数?

来自分类Dev

如何在指令中从templateUrl运行$ scope函数?

来自分类Dev

如何在$ scope对象中获取`config`值?

来自分类Dev

如何在酶中生成模糊或onBlur事件?

来自分类Dev

AngularJS / jQuery-如何在jQuery事件处理程序中附加$ scope对象的某些属性

来自分类Dev

匿名函数中的$ scope

来自分类Dev

函数中的 $scope 变量

来自分类Dev

如何通过GoogleOnReady函数在Angular Scope中运行函数?

来自分类Dev

如何在OnContextItemSelected事件中获取View?

来自分类Dev

如何在事件日志中获取UserData?

来自分类Dev

如何在事件日志中获取UserData?

来自分类Dev

如何从angularjs的$ scope中获取普通对象?

来自分类Dev

我如何在事件函数中获取该类

来自分类Dev

如何在 eventDrop 函数中获取事件的结束时间

来自分类Dev

如何在 Codeigniter 中获取 onkeyup 事件的 Ajax 函数

来自分类Dev

我的项目需要onBlur事件函数

来自分类Dev

如何在事件处理程序中获取事件名称

来自分类Dev

PrimeFaces日历在onblur事件中具有旧的价值

来自分类Dev

React Redux onBlur 事件未在 Safari 和 Firefox 中触发

来自分类Dev

Expect语句适用于$ scope,如何在Karma测试中获取init()函数?

来自分类Dev

如何在$ scope AngularJS中声明对象

来自分类Dev

如何在AngularJS中测试$ scope。$ on

来自分类Dev

如何在指令中监视$ scope的变化?

来自分类Dev

如何在 HighCharts 中显示内容 $scope?

Related 相关文章

  1. 1

    如何在茉莉花测试中测试$ scope。$ on事件?

  2. 2

    如何在onBlur事件中删除DIV元素的所有子元素?

  3. 3

    如何在$ scope。$ broadcast上跟踪事件?

  4. 4

    如何在angularjs的指令函数中获取当前的Controller $ scope?

  5. 5

    如何在angularjs的指令函数中获取当前的Controller $ scope?

  6. 6

    如何在指令中从templateUrl运行$ scope函数?

  7. 7

    如何在指令中从templateUrl运行$ scope函数?

  8. 8

    如何在$ scope对象中获取`config`值?

  9. 9

    如何在酶中生成模糊或onBlur事件?

  10. 10

    AngularJS / jQuery-如何在jQuery事件处理程序中附加$ scope对象的某些属性

  11. 11

    匿名函数中的$ scope

  12. 12

    函数中的 $scope 变量

  13. 13

    如何通过GoogleOnReady函数在Angular Scope中运行函数?

  14. 14

    如何在OnContextItemSelected事件中获取View?

  15. 15

    如何在事件日志中获取UserData?

  16. 16

    如何在事件日志中获取UserData?

  17. 17

    如何从angularjs的$ scope中获取普通对象?

  18. 18

    我如何在事件函数中获取该类

  19. 19

    如何在 eventDrop 函数中获取事件的结束时间

  20. 20

    如何在 Codeigniter 中获取 onkeyup 事件的 Ajax 函数

  21. 21

    我的项目需要onBlur事件函数

  22. 22

    如何在事件处理程序中获取事件名称

  23. 23

    PrimeFaces日历在onblur事件中具有旧的价值

  24. 24

    React Redux onBlur 事件未在 Safari 和 Firefox 中触发

  25. 25

    Expect语句适用于$ scope,如何在Karma测试中获取init()函数?

  26. 26

    如何在$ scope AngularJS中声明对象

  27. 27

    如何在AngularJS中测试$ scope。$ on

  28. 28

    如何在指令中监视$ scope的变化?

  29. 29

    如何在 HighCharts 中显示内容 $scope?

热门标签

归档