0

我有一个房间对象列表,它绑定到一个名为 roomsGroup 的数组集合(在模型中)。通过从服务器调用相应的服务,我具有从列表中添加或删除房间的功能。一切正常——直到没有房间,我将第一个添加到列表中。然后,即使它被正确添加(从服务器返回的房间对象的长度为 1),它也不会显示在 UI 中。如果我添加第二个房间,那么他们都会出现。

整个模型类(单例)被标记为 Bindable,因此 public roomsGroup 变量也自动为 Bindable。

在“添加房间”服务的结果处理程序中,我检查服务器返回的房间,并将它们放入名为房间的本地数组集合中。然后我在model=rooms中设置Bound roomsGroup:

    model.roomsGroup = rooms;
    model.roomsGroup.refresh(); //I tried adding this but it doesn't help.
    model.roomsGroup.filterFunction = null; //Also tried this, but it doesn't help.

在面板中,列表组件的源绑定到 model.roomsGroup 数组集合:

 <myPanel:RoomsComponent id="roomsList" roomSource="{model.roomsGroup}"

另一件事——在 myPanel 中有一个文本框,其中在 keyup 上调用了一个名为 searchContact() 的函数。它所做的其中一件事是:

 model.roomsGroup.filterFunction = roomFilterFunction;
 model.roomsGroup.refresh();

所以我打电话给服务,第一个/唯一创建的房间没有出现。但是如果我在文本框中输入一些东西,它就会显示出来。换句话说,过滤器功能确实会导致它显示。

想知道为什么,如果绑定设置正确(而且它们是,因为它在其他所有情况下都有效,而不是当我们在列表中从零到一个项目时)它不会工作。我最好的猜测是它与过滤功能有关,但我不知道具体是什么。

任何帮助表示赞赏。

4

1 回答 1

0

在这里,您需要将这行代码向上移动,model.roomsGroup.filterFunction = null;然后您的问题就会解决。

model.roomsGroup = rooms;
model.roomsGroup.refresh(); //I tried adding this but it doesn't help.
model.roomsGroup.filterFunction = null; //Also tried this, but it doesn't help.

代码块更改为

model.roomsGroup = rooms;
model.roomsGroup.filterFunction = null; //This should be first line.
model.roomsGroup.refresh(); //This should be second line.
于 2013-01-08T05:45:49.657 回答