AngularJS ng要求不使用变量
我必须使用所需的指令ng,但我不能硬编码true或false。我需要在变量中使用它,但angular不识别“true”AngularJS ng要求不使用变量,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我必须使用所需的指令ng,但我不能硬编码true或false。我需要在变量中使用它,但angular不识别“true” 两者都有ng required=“true” 一个作为硬编码字符串文字,一个通过变量 检查它们,不需要一个! 我怎样才能让它工作? <input type="text" ng-required="{{test}}" /> 这里不需要插值测试。因为您想评估test的值,所以只需删除大括号,它就可以工作。昨天刚刚发现,您可以在与ng类相同的模式中使用ng
两者都有ng required=“true”
一个作为硬编码字符串文字,一个通过变量
检查它们,不需要一个!
我怎样才能让它工作?
<input type="text" ng-required="{{test}}" />
这里不需要插值测试。因为您想评估test的值,所以只需删除大括号,它就可以工作。昨天刚刚发现,您可以在与ng类相同的模式中使用ng required:
<input type = "text" ng-required = "{true : 'true', false : 'false'}[test]" />
出于某种原因,两种答案都不起作用,只需使用
ng-required="expired"
将expired作为变量。我个人在这类指令中使用了三元运算符,效果很好。对于所需的ng:
<input type="text" ng-required="(user.name == '' ? 'true' : 'false')" ng-model="user.nickname"/>
在本例中,如果未填写用户的“姓名”字段,则“昵称”字段将成为必填项。我明白了。ng required指令尝试直接访问给定字符串文字命名的范围内的变量。一旦它将{test}}求值为“true”,它就会尝试查找scope.true,而这是未定义的。Undefined不是==true,因此它不是必需的。谢谢你!插值的结果总是一个字符串。@JM。你就是那个家伙!我确实尝试了您建议的ng required=“{true:'true',false:'false'}[test]”,但我很好奇为什么ng required=“{{test}}”不起作用?@Yoo在Angular指令中,您不必用双括号“{{}”来包装表达式,因为它已经完成了。但是,必须在非角度参数上使用它,例如“名称”、“类”、“id”……接受的参数表示完全相同。请仔细阅读。您能解释一下为什么
ng required=“user.name=”
不够吗?
<input type="text" ng-required="(user.name == '' ? 'true' : 'false')" ng-model="user.nickname"/>