'items' 为 null 时 AngularDart Filter 调用方法抛出错误

AngularDart Filter call method throws error when 'items' is null

当我使用 'filter' 加载组件时,'call' 方法在设置 'items' 参数之前 运行。所以我从第 200 行收到重复错误。最终,'items' 被发送并且 'call' 方法 运行s 没有错误。

The null object does not have a method 'where'.

NoSuchMethodError: method not found: 'where'
Receiver: null
Arguments: [Closure: (dynamic) => dynamic]

STACKTRACE:
#0      Object._noSuchMethod (dart:core-patch/object_patch.dart:42)
#1      Object.noSuchMethod (dart:core-patch/object_patch.dart:45)
#2      Filter.call (package:angular/formatter/filter.dart:200:26) 

这是我第一次使用 AngularDart 实现过滤器,这在我尝试过的两个组件中都发生过。我的模板没有什么特别之处:

<tr ng-repeat="appSession in appSessions | orderBy: orderByList | filter: filterObject">

appSessions 列表由属性设置,如果未提供,则在附加方法中设置。在这种情况下,它是由属性设置的。

@NgOneWay("app-sessions") List<AppSessionModel> appSessions;
@NgOneWay("mobile-user-id") int mobileUserID;

void attach() {

    if (appSessions == null) {
        if (mobileUserID != null) {
            appSessionManager.getForUser(mobileUserID).then((sessions) {
                appSessions = sessions;
            });
        } else if (!fromUserTable) {
            appSessionManager.getOpen().then((sessions) {
                appSessions = sessions;
            });
        }
    }
}

有没有其他人遇到过这种情况?这里有时间错误吗?

谢谢, 山姆

您可以只用空列表初始化该字段

List<AppSessionModel> appSessions = [];

经过更多调试,我确认我的列表在 'attach' 方法中从不为 null,并且我确认 Filter.call 在 'attach' 方法之后是 运行。原来问题出在模板中的'orderBy'

我有这个:

<tr ng-repeat="appSession in appSessions | orderBy: orderByList | filter: filterObject">

如果我切换 'orderBy' 和 'filter',则不会再出现 Filter.call 错误:

<tr ng-repeat="appSession in appSessions | filter: filterObject | orderBy: orderByList">

我调试了OrderBy.call,但它没有将'items'返回为null,所以问题似乎出在OrderBy和Filter之间,但我对AngularDart的了解还不够,不知道是什么可能是。