Angularjs 使用排序指令时出现未知角度错误

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=函数(){

我有一个angular指令,它对表中的列进行排序。在版本1.20之前,这是可行的,但升级到1.20之后,我得到了以下错误。有人知道怎么回事吗

错误:[$parse:isecprv] $parse/isecprv?p0=_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>