错误'orderBy'当更新到Angular 1.5.3时

Error 'orderBy' when updating to Angular 1.5.3

本文关键字:3时 Angular orderBy 错误 更新      更新时间:2024-02-17

我在我的项目中更新了Angular,从1.4.9更新到1.5.3。在其中一个页面上,我收到了错误消息:

'Error: orderBy:notarray Value is not array-like', 'Expected array but received: 0'

这是模板:

<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>

vm.TargetingsAudience-是一个对象数组:

[{Name: "Гео", TargetingCategory: "Audience", TypeId:"Location", Values: [0: "Россия", 1: "Москва", 2: "Московская область"]}]

这可能与角度1.5 的中断变化有关

过滤器(订购方)

由于2a85a634,传递非数组类值(未定义的除外或null)将引发错误。先前输入返回时保持不变,这可能导致难以发现错误,并且与其他过滤器(例如过滤器)不一致。对象考虑的类数组包括:数组,数组子类,字符串,NodeLists,jqLite/jQuery集合

尝试使用AngularJS toArray Filter

编辑:

因为你很难过你升级了这个应用程序,我以为它以前可以工作。但为了让它发挥作用,我认为你必须切换跟踪和按声明订购

注意: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>

orderBy:orderByName更改为orderBy:'Name'