如何动态地将“required”属性添加到指令模板?

时间:2014-09-11 11:08:24

标签: angularjs validation angularjs-directive

我正在尝试使用input创建一个指令。此input可选地可能需要required属性。

e.g。

<my-input name="test" required/>

<my-input name="test" />

现在在我的指令中,我有一个这样的模板:

<input type="text" name="{{name}}" />

现在,如果我在模板中添加required属性,验证工作正常。但是我当然需要动态添加它。所以我使用以下代码添加属性。

if (attributes["required"] != undefined)
{
    var input = element.find("input");
    input.prop("required", true);
}

我尝试将此代码放在linkpre compile中,并且HTML呈现正确,但这不起作用。

我是指令的新手所以我显然错了。

我应该如何添加required属性?

1 个答案:

答案 0 :(得分:0)

我已经在自己的指令中找到了如何做到这一点,而不是让角度机制起作用。基本上只使用正常的验证技术。

if (attributes["required"] != undefined)
{
    controller.$setValidity("required", !(scope.Model.Value == null || scope.Model.Value.length === 0 || scope.Model.Value.trim() === ""));
}