Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 集合中有1项时,AS3筛选功能不工作_Actionscript 3_Apache Flex_Flex4.5_Flash Builder4.5 - Fatal编程技术网

Actionscript 3 集合中有1项时,AS3筛选功能不工作

Actionscript 3 集合中有1项时,AS3筛选功能不工作,actionscript-3,apache-flex,flex4.5,flash-builder4.5,Actionscript 3,Apache Flex,Flex4.5,Flash Builder4.5,我有一个房间对象列表,它绑定到一个名为roomsGroup的数组集合(在模型中)。我有一些功能,可以通过从服务器调用相应的服务来从列表中添加或删除房间。一切都很好——直到没有房间,我在列表中添加第一个房间。然后,即使添加正确(从服务器返回的房间对象的长度为1),它也不会显示在UI中。如果我再加一个房间,他们两个都会出现 整个模型类(单例)标记为可绑定,因此公共roomsGroup变量也可自动绑定 在“addroom”服务的结果处理程序中,我检查服务器返回的房间,并将它们放入名为rooms的本地数

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

整个模型类(单例)标记为可绑定,因此公共roomsGroup变量也可自动绑定

在“addroom”服务的结果处理程序中,我检查服务器返回的房间,并将它们放入名为rooms的本地数组集合中。然后在model=rooms中设置绑定的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}"
所以我打电话给服务,第一个/唯一创建的房间没有出现。但是如果我在文本框中输入了什么,它就会显示出来。换句话说,filter函数确实会导致它显示

想知道为什么,如果绑定设置正确(而且它们是正确的,因为它在列表中从零到一项的情况下都可以工作),那么它就不会工作。我最好的猜测是它与过滤函数有关,但我不知道确切的原因


感谢您的帮助。

在这里,您需要向上移动这行代码
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.

为什么不在列表中添加一个不可见且不会产生任何影响的虚拟房间呢?我认为应该解决这个问题,因为当您将第一个房间添加到列表中时,列表大小将为2。但这并不能真正回答为什么会出现问题。您可能希望显示filterFunction的代码。或者,如果可能,提供简单的工作示例。这里似乎没有足够的信息来解释为什么会发生这种情况。谢谢——试过了,但没用。我将尝试完全删除过滤函数,或者尝试强制它启动。
model.roomsGroup = rooms;
model.roomsGroup.filterFunction = null; //This should be first line.
model.roomsGroup.refresh(); //This should be second line.