【问题标题】:Access $error in Angular directive在 Angular 指令中访问 $error
【发布时间】:2015-07-03 18:02:07
【问题描述】:

我有一个包含在指令中的输入,其动态名称如下:

<input class="input-field" name="{{name}}" type="number" ... />

现在我想访问指令中形式的$error 变量。 类似form.{{name}}.$error.number

有没有办法做到这一点?

【问题讨论】:

标签: javascript angularjs angularjs-directive angularjs-scope


【解决方案1】:

如果您想访问表单(即在父范围内),您必须将表单传递给您的指令。为此,您必须在定义指令时指定双向绑定(使用=)。

看看https://docs.angularjs.org/guide/directive,更具体地说,关于isolating the scope的部分可能会对你有所帮助。

【讨论】:

  • 我知道。但我不知道如何动态访问表单上的特定字段。该字段的名称存储在一个变量中...
  • 啊,我当时误解了这个问题。你试过form[name].$error.number 吗?
【解决方案2】:

也许获取特定ngModelController$error就够了?

return {
  template: '<input ng-model="value" type="number" /><span ng-bind="error | json"></span>',
  scope : {},
  link: function(scope, elem, attr) {
    scope.error = elem.find('input').controller('ngModel').$error;
  }
}

http://plnkr.co/edit/wzuWT1lVevCLHkLLBIAT?p=preview

【讨论】:

    猜你喜欢
    • 2019-02-21
    • 1970-01-01
    • 2016-05-20
    • 2020-05-30
    • 2019-08-12
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 2021-08-03
    相关资源
    最近更新 更多