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

时间:2016-01-14 21:56:38

标签: dart angular-dart

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

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列表由attach属性设置,如果没有提供,则在attach方法中设置。在这种情况下,它由属性设置。

@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;
            });
        }
    }
}

还有其他人经历过这个吗?这里有时间错误吗?

谢谢, 萨姆

2 个答案:

答案 0 :(得分:1)

经过更多调试后,我确认我的列表在&#39; attach&#39;方法,我确认Filter.call在&#39; attach&#39;之后运行。方法。事实证明,问题与“订单”有关。在模板中。

我有这个:

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

如果我切换&#39; orderBy&#39;和&#39;过滤&#39;,然后不再有Filter.call错误:

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

我调试了OrderBy.call,但它没有返回&#39; items&#39;因为null,所以问题似乎介于OrderBy和Filter之间,但我不太了解AngularDart知道它可能是什么。

答案 1 :(得分:0)

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

List<AppSessionModel> appSessions = [];