【发布时间】:2015-02-25 13:42:09
【问题描述】:
我正在尝试使用 angular orderBy 对多个字段进行排序,但出现以下语法错误:
语法错误,无法识别的表达式:div[ng-repeat='r in vm.GetRequests() |过滤器:vm.SearchText | orderBy:['LastName','FirstName']']
似乎出现了额外的符号']',但我在 html 中没有它
html 看起来像:
<div ng-repeat="r in vm.GetRequests() | filter: vm.SearchText |orderBy:'RequestedOn'| orderBy:['LastName','FirstName']">
{{r.LastName}} : {{r.FirstName}}
</div>
函数GetRequests()返回一个对象数组,如下:
[{FirstName:"Test1", LastName:"First"},{FirstName:"Test2",LastName:"Second"},{FirstName:"Test3",LastName:"Third"}]
谁能帮我解决这个问题?
更改 HTM - 删除 orderBy: 'RequestedOn'
<div ng-repeat="r in vm.GetRequests() | filter: vm.SearchText | orderBy:['LastName','FirstName']">
{{r.LastName}} : {{r.FirstName}}
</div>
但我仍然遇到语法错误:
Uncaught Error: Syntax error, unrecognized expression: div[ng-repeat='r in vm.GetRequests() | filter: vm.SearchText | orderBy:['LastName','FirstName']']
更新
语法似乎来自浏览器链接,因为当我收到错误消息时,该命令已生效。 并建议将所有订单属性放在一个数组中
非常感谢大家的投入,特别感谢 RishiPrakash :)
【问题讨论】:
-
尝试看,在错误中,orderBy : RequestedOn 不存在,错误必须与它有关。@ Rishi Prakash - 我删除了第一个 orderBy:'RequestedOn',但我仍然收到此错误:未捕获的错误:语法错误,无法识别的表达式:div[ng-repeat='r in vm.GetRequests() |过滤器:vm.SearchText | orderBy:['LastName','FirstName']']最后一个 ] 实际上是 div[ng-repeat in error 的结束信号,至少这个谜题解开了@Rishi Prakash - 我现在看到了,最后一个 ']' 是错误标签的结尾,现在我不明白为什么我仍然会收到语法错误。我已经更新了 HTML
标签: angularjs angularjs-orderby