angularjs:在指令内访问表单字段

时间:2014-03-03 10:00:50

标签: javascript angularjs angularjs-directive angularjs-ng-form

我有一个指令barFoo,它有以下模板:

<div>
    ....
    <input ng-model="data">
</div>

此指令在表单中使用!现在,在这个指令中,我想做像

这样的事情
element.find('input').$setValidity('bar-valid', false);

然而,这不起作用。此外,输入字段没有名称属性。 没有'name'属性有没有办法做到这一点?

更新:另一个解决方案是在指令元素

上定义ngModel
<bar-foo ng-model="data.value"></bar-foo>

并重写指令如下

....
    .directive('barFoo', function () {
        return {
            require: 'ngModel',
            ...
            link: function (scope, element, attrs, ctrl) {
                ctrl.$setValidity('bar-valid', false);
            }
    });

2 个答案:

答案 0 :(得分:1)

看一下这个问题:AngularJS Form Validation Directive $setValidity on element

我会准确地为您提供所需的信息,包括代码

答案 1 :(得分:1)

您可以调用name =“itAmazingName”的指令并在指令模板中使用它,这应该可以解决您的问题