我正在处理我正在处理的应用的搜索组件,我需要添加一些过滤器。我找到了一个例子,让第一个过滤器工作正常。
现在我正在尝试添加第二个过滤器,我遇到了问题......在示例中,我发现它们使用filterFunctions,但我只获得了filterFunction的选项,为什么会这样?
这是示例代码
productsCollection.filterFunctions =
[
filterByPrice, filterByType,
filterByCondition, filterByVendor
]
这就是我正在尝试的
acData.filterFunction = [filterByStatus, filterByDate]
但是使用此代码我收到以下错误消息 - 1067:将类型Array的值隐式强制转换为不相关的类型函数。
为什么我会收到此错误以及如何向Array Collection添加多个过滤器?
谢谢!
答案 0 :(得分:3)
filterFunction
必须设置为单个函数,而不是Array
或任何其他数据类型。要组合多个函数,请创建一个组合它们的函数,如下所示:
acData.filterFunction = function(item:Object)
{
return
filterByPrice(item) &&
filterByType(item) &&
filterByCondition(item) &&
filterByVendor(item);
};
如果您看到使用filterFunctions
复数形式接受数组的示例,请发布链接。这不是标准Flex框架或新版4.0测试版中的任何地方。
答案 1 :(得分:0)
看起来您将不得不扩展一个arraycollection以使其工作。此链接应该为您拼出:http://blog.rotundu.eu/flex/arraycollection-with-multiple-filter-functions/