Мак*_*идь 8 javascript angularjs angularjs-orderby
我在项目中更新了Angular,从1.4.9更新到1.5.3.在其中一个页面上我收到此错误消息:
'Error: orderBy:notarray Value is not array-like', 'Expected array but received: 0'
Run Code Online (Sandbox Code Playgroud)
这是模板:
<tr ng-repeat="targeting in vm.TargetingsAudience track by $index | orderBy:orderByName">
<td>
{{targeting.Name}}
</td>
<td class="au_content_descr">
<p ng-repeat="val in targeting.Values track by $index | orderBy:orderByName" class="targeting-value">{{val}}</p>
</td>
<td class="au_ico_2">
<a class="au_del au_fast_ico" ng-click="vm.removeTargeting(targeting)"><i class="glyphicon glyphicon-remove"></i></a>
<a class="au_edit au_fast_ico" ng-click="vm.editTargeting(targeting)"><i class="glyphicon glyphicon-pencil"></i></a>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
vm.TargetingsAudience - 是一个对象数组:
[{Name: "???", TargetingCategory: "Audience", TypeId:"Location", Values: [0: "??????", 1: "??????", 2: "?????????? ???????"]}]
Run Code Online (Sandbox Code Playgroud)
jow*_*wey 11
这可能与角度1.5的突变有关
过滤器(orderBy)
由于2a85a634,通过orderBy过滤器传递非类数的值(undefined或null除外)将引发错误.以前,输入未更改,这可能导致难以发现的错误,并且与其他过滤器(例如过滤器)不一致.被认为是类似数组的对象包括:数组,数组子类,字符串,NodeLists,jqLite/jQuery集合
编辑:
因为你很难过你升级了应用程序,我以为它以前工作过.但为了使它工作,我认为你必须切换跟踪和按语句排序
注意:track by必须始终是最后一个表达式:
<tr ng-repeat="targeting in vm.TargetingsAudience | orderBy:orderByName track by $index ">
<p ng-repeat="val in targeting.Values | orderBy:orderByName track by $index " class="targeting-value">{{val}}</p>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4511 次 |
| 最近记录: |