Angularjs ng具有特殊字符“的重复排序表:&引用;在价值上
我使用angularjs ng repeat通过点击表格标题对我的记录进行排序,我发现了一个工作完美的示例,代码如下:Angularjs ng具有特殊字符“的重复排序表:&引用;在价值上,angularjs,Angularjs,我使用angularjs ng repeat通过点击表格标题对我的记录进行排序,我发现了一个工作完美的示例,代码如下: <th ng-repeat="header in headers"> <a ng-click="toggleSort($index)">{{ headers[$index] }}</a> </th> 这是一个很好的例子 但是,我的问题是,在我的对象中有带“:”的索引,它会导致类似“TypeError:无法读取未定义的属
<th ng-repeat="header in headers">
<a ng-click="toggleSort($index)">{{ headers[$index] }}</a>
</th>
这是一个很好的例子
但是,我的问题是,在我的对象中有带“:”的索引,它会导致类似“TypeError:无法读取未定义的属性'col:A'的错误”
那么,如何使其与“:”一起工作?您应该更改在数组中调用参数的方式:
$scope.headers = ['sortColumn', 'colB'];
$scope.records = [{sortColumn: 'a1', colB: 'd1'}, {sortColumn: 'c2', colB: 'b2'}, {sortColumn: 'b3', colB: 'c3'}, {sortColumn: 'd4', colB: 'a4'}];
$scope.sortColumn = 'colA';
这是一个错误,当OrderBy筛选器中使用特殊字符(如“%”)按键对对象进行排序时,会发生此错误
您可以在此处找到有关此问题的更多详细信息:
它似乎已在角度1.3.0-beta3中进行了修正
解决方法是编写自己的比较函数并使用数组的
我要给你一个比较函数的概念,以及如何使用它:
function compare(a,b,property) {
if (a[property] < b[property])
return -1;
if (a[property] > b[property])
return 1;
return 0;
}
函数比较(a、b、属性){
if(a[属性]b[属性])
返回1;
返回0;
}
两个链接中的内容看起来相同。