【问题标题】:Get Angular input handle when accessing element by id通过 id 访问元素时获取 Angular 输入句柄
【发布时间】:2016-05-02 19:26:52
【问题描述】:

Angular 为读取输入字段的状态提供了极大的可能性,例如$dirty、$touched 等。但是,据我所知,这仅在按名称访问输入元素时才有效,例如$scope.formName.inputFieldName。

但是我需要通过元素的 ID(并且没有表单名称)访问指令控制器内指令模板中定义的输入元素。无论我尝试什么,我都没有得到特殊的输入表单句柄。 类似的东西

var myElement = $document[0].getElementById('my_id');
console.log(angular.element(myElement));

不起作用。我得到了 DOM 元素本身,包裹在通用对象上下文中,但不是 Angular 提供的输入句柄。

【问题讨论】:

  • 在 Ari 的回答中找到了 stackoverflow.com/questions/23609171/…。然而,这似乎并不重要。使用 vanilla JavaScript 'document.getElementById' 会得到完全相同的结果。
  • 你想做什么?你试过链接函数中的元素参数吗?
  • 那不存在。我在这个指令模板中生成了几十个输入元素。我想在指令的控制器函数中访问其中一个。
  • 你试过angular.element(myElement).controller("ngModel")吗?
  • @georgeawg 成功了!谢谢!

标签: angularjs forms


【解决方案1】:

使用angular.element(myElement).controller("ngModel") 访问输入元素的模型控制器。

欲了解更多信息,请参阅AngularJS element function API Reference -- jqLite Extras

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 2017-05-26
    • 1970-01-01
    相关资源
    最近更新 更多