Angularjs 使用排序指令时出现未知角度错误
我有一个angular指令,它对表中的列进行排序。在版本1.20之前,这是可行的,但升级到1.20之后,我得到了以下错误。有人知道怎么回事吗 错误:[$parse:isecprv] $parse/isecprv?p0=_sort()Angularjs 使用排序指令时出现未知角度错误,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个angular指令,它对表中的列进行排序。在版本1.20之前,这是可行的,但升级到1.20之后,我得到了以下错误。有人知道怎么回事吗 错误:[$parse:isecprv] $parse/isecprv?p0=_sort() app.directive('sorted',function(){ 返回{ 范围:正确, 是的, 模板:“”+ "&"x25BC"+ "&"x25B2",, 控制器:函数($scope、$element、$attrs){ $scope.\u sort=函数(){
app.directive('sorted',function(){
返回{
范围:正确,
是的,
模板:“”+
"&"x25BC"+
"&"x25B2",,
控制器:函数($scope、$element、$attrs){
$scope.\u sort=函数(){
$scope.model.sort($attrs.sorted);
};
$scope.show_sort_icon=函数(is_desc){
返回($scope.model.sidx==attrs.sorted)&($scope.model.is_desc==is_desc);
};
}
};
});
用法:
<table>
<thead>
<tr>
<th sorted="something">Something</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in model.items">
<td>{{item.something}}</td>
</tr>
</tbody>
</table>
某物
{{item.something}}
答案由@Heikki找到 将考虑名称以下划线开头或结尾的字段 私人领域。角度表达式不允许引用此类表达式 范围链上的字段。这仅适用于角度表达式 (例如,插值和使用字符串表达式调用$parse Javascript本身没有这样的概念 若要解决此错误,请使用备用非专用字段(如果可用) 或将字段公开(通过删除任何前导和尾随 将其名称中的字符下划线。) 可能导致此错误的示例表达式:
{{user.\u private\u field}
你能在Plunker/Fiddle中重现这个错误吗?@MaximShoustin我会尝试发回。请提供一个JSFIDLE。一个问题:为什么不使用orderBy过滤器?有什么好处Ethanks的家伙们不确定问题出在哪里,但在尝试用fiddle复制时,我发现1.2.1工作得很好。PS-我需要在服务器上进行筛选的原因是,客户端接收到完整结果的一个子集。需要对整个集合进行排序。
<table>
<thead>
<tr>
<th sorted="something">Something</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in model.items">
<td>{{item.something}}</td>
</tr>
</tbody>
</table>
<div>{{user._private_field}}</div>