当我使用'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;
});
}
}
}
还有其他人经历过这个吗?这里有时间错误吗?
谢谢, 萨姆
答案 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 = [];