我正在编写自定义表单验证,使用ng-class突出显示必填字段,语法为:
<div class="form-group"
ng-class="{'has-error': dc.{{fname}}.nedatt({{fname}}.username)}">
<input class="form-control" name="username" type="text" placeholder="Username"
ng-required="true" ng-model="f1username"/>
<span class="help-block" ng-show="{{fname}}.username.$error.required">Required</span>
</div>
对于ng-class,我得到了:
Error: [$parse:syntax]
http://errors.angularjs.org/1.3.3/$parse/syntax?p0=.&p1=not%20a%20primary%20expression&p2=1&p3=.username.%24error.required&p4=.username.%24error.required
获取帮助块:
SyntaxError: Unexpected token ;
实际上fname
是要替换的表单的名称,因此我在{{}}
内使用。请帮忙,我被困住了。
答案 0 :(得分:1)
你不能像这样绑定ng-class中的角度表达式。你应该使用javascript表示法。这意味着:
<div class="form-group"
ng-class="{'has-error': dc[fname].nedatt(getFormObject(fname).name)">
</div>
看起来您正在尝试动态化用于检查name属性的对象。不幸的是你不能这样做,对象“必须”被修复,而不是字符串。出于这个原因,我建议在你的控制器或指令中调用一个返回正确对象的函数,然后用你需要的任何东西。
对于ng-show,我会实现类似的东西。请记住,它不会被字符串解析,而是直接评估(并且在javascript {{foo}}中是不正确的语法)