我有一个房间对象列表,它绑定到名为roomsGroup的数组集合(在模型中)。通过从服务器调用相应的服务,我有从列表中添加或删除房间的功能。一切正常 - 直到没有房间,我在列表中添加第一个。然后,即使它被正确添加(从服务器返回的房间对象的长度为1),它也不会显示在UI中。如果我添加第二个房间,那么它们就会出现。
整个模型类(单例)标记为Bindable,因此public roomsGroup变量也是自动Bindable。
在“添加房间”服务的结果处理程序中,我检查服务器返回的房间,并将它们放在名为rooms的本地数组集合中。然后我在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.
在面板中,list组件的源绑定到model.roomsGroup数组集合:
<myPanel:RoomsComponent id="roomsList" roomSource="{model.roomsGroup}"
另一件事 - 在myPanel中有一个文本框,其中在keyup上调用了一个名为searchContact()的函数。其中一件事就是:
model.roomsGroup.filterFunction = roomFilterFunction;
model.roomsGroup.refresh();
所以我打电话给服务,第一个/唯一创建的房间没有出现。但是,如果我在文本框中输入内容,那么它会显示出来。换句话说,过滤器功能确实会显示它。
想知道为什么,如果绑定设置正确(并且它们是,因为它适用于所有其他情况,而不是我们从列表中的零到一个项目),它将无法工作。我最好的猜测是它与滤波器功能有关,但我不确切知道是什么。
任何帮助表示感谢。
答案 0 :(得分: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.