4

我必须使用指令 ng-required,但我不能硬编码 true 或 false。我需要在变量中使用它,但角度无法识别“真实”。

jsFiddle 示例

<div ng-app ng-init="test=true">
    <div>
        both have ng-required="true"
        <br/>
        one as hardcoded string literal, one via a variable
        <br/>
        Inspect them, one is not required!
    </div>
    <form name="myForm">
        <input type="text" ng-required="{{test}}" />
        <input type="text" ng-required="true" />
    </form>
</div>

我怎样才能得到这个工作?

4

4 回答 4

12
<input type="text" ng-required="{{test}}" />

您不需要在此处插入测试。由于您想评估 test 的值,只需删除花括号,它应该可以工作。

于 2013-06-21T10:43:27.143 回答
5

昨天刚刚发现,您可以以与 ng-class 相同的模式使用 ng-required:

<input type = "text" ng-required = "{true : 'true', false : 'false'}[test]" />
于 2013-08-22T05:27:50.480 回答
1

我个人在这类指令中使用三元运算符,效果很好。对于 ng-required :

<input type="text" ng-required="(user.name == '' ? 'true' : 'false')" ng-model="user.nickname"/>

在此示例中,如果用户的姓名字段未填写,则昵称字段将变为 REQUIRED。

于 2015-12-14T10:28:06.033 回答
0

出于某种原因,两个答案都不起作用,只需使用

ng-required="expired"

expired 是一个变量。

于 2015-04-23T14:56:39.793 回答