如何解析或获取字段值,字段名称中有特殊字符?我收到了以下错误:
Lexer错误:第28-28行[〜]中出现意外的下一个字符 表达式[report.VALUE_MAP.LOGIN_DATA~LOGIN_DATE]
我想获得
的价值<td>{{report.VALUE_MAP.LOGIN_DATA~LOGIN_DATE}}</td>
答案 0 :(得分:2)
我发现此处描述的类似问题https://github.com/angular/angular.js/issues/7469
尝试此解决方法:
<td>{{report.VALUE_MAP['LOGIN_DATA~LOGIN_DATE']}}</td>
我认为LOGIN_DATA~LOGIN_DATE
是有问题的属性名称
幕后发生了什么
AngularJS的$ parse服务将尝试评估表达式report.VALUE_MAP.LOGIN_DATA~LOGIN_DATE
。它将尝试遍历范围和嵌套对象以获取最后一个属性并检索它的值。但tilde ~
在javascript中有特殊含义。 (在此处阅读http://www.joezimjs.com/javascript/great-mystery-of-the-tilde/)因此,代字号~
会混淆解析器。最好在属性名称中避免使用它。
如果您无法控制属性名称,并且您必须使用属性名称中的tilda,那么您必须使用此语法object['propertyname']
。