Javascript angularjs:指令内部的访问表单字段

Javascript angularjs:指令内部的访问表单字段,javascript,angularjs,angularjs-directive,angularjs-ng-form,Javascript,Angularjs,Angularjs Directive,Angularjs Ng Form,我有一个指令barFoo,它有以下模板: <div> .... <input ng-model="data"> </div> 然而,这不起作用。此外,输入字段没有名称属性。 在没有“name”属性的情况下,有没有办法做到这一点 更新:另一个解决方案是在directive元素上定义ngModel <bar-foo ng-model="data.value"></bar-foo> 看看这个问题: 我将为您提供所需的一切,

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

<div>
    ....
    <input ng-model="data">
</div>
然而,这不起作用。此外,输入字段没有名称属性。 在没有“name”属性的情况下,有没有办法做到这一点

更新:另一个解决方案是在directive元素上定义ngModel

<bar-foo ng-model="data.value"></bar-foo>

看看这个问题:


我将为您提供所需的一切,包括代码

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

该帖子中的解决方案是使用name属性。在这个问题上,我想知道是否有可能在没有$servality的情况下实现它是angularjs魔法的一部分。如果您想使用它,那么您需要坚持使用angularjs表单处理。这意味着,您需要一个name属性。name属性到底有什么问题?嗯,该指令是泛型的。在一个表单中,它可以多次使用。因此,如果我需要使用name属性,我需要生成一个随机名称(我想)。所以这就是为什么我想知道我是否可以不用你仍然需要使用name属性。。唯一的问题是:你必须在你的指令中使用ng表单,这是行不通的。如果您有多个name=“itAmazingName”的元素,我会说$setValidity会中断,因为表单将所有元素视为一个实体!谁说有多个元素同名?我只建议对指令使用name,然后在指令templateOk中使用它。好的,您想用name属性调用指令元素。很有趣,但仍然需要生成名称属性值。
<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);
            }
    });