使用ng-class时出错:[$ parse:syntax]

时间:2015-01-05 10:05:04

标签: javascript angularjs

我正在编写自定义表单验证,使用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是要替换的表单的名称,因此我在{{}}内使用。请帮忙,我被困住了。

1 个答案:

答案 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}}中是不正确的语法)