مشكلة تصفية الوظائف
-
19-09-2019 - |
سؤال
أنا أعمل على مكون بحث للتطبيق الذي أعمل عليه وأني أحتاج إلى إضافة بعض المرشحات إليه. لقد وجدت مثالا وحصلت على المرشح الأول يعمل بشكل جيد.
الآن أحاول إضافة مرشح ثان أعاني من مشاكل ... في المثال، وجدت أنهم يستخدمون المرشحين، لكنني فقط أحصل على خيار للتصفية، لماذا هذا؟
إليك رمز المثال
productsCollection.filterFunctions =
[
filterByPrice, filterByType,
filterByCondition, filterByVendor
]
وهذا ما أحاول
acData.filterFunction = [filterByStatus, filterByDate]
ولكن مع هذا الرمز، أحصل على رسالة الخطأ التالية - 1067: إكراه ضمني لقيمة صفيف الكتابة إلى وظيفة نوع غير مرتبط.
لماذا أحصل على هذا الخطأ وكيف أذهب حول إضافة مرشحات متعددة إلى مجموعة صفيف الخاصة بي؟
شكرا!
المحلول
filterFunction
يجب أن يتم ضبطها على وظيفة واحدة، وليس Array
أو أي نوع بيانات آخر. للجمع بين وظائف متعددة إنشاء واحد يجمع بينها، مثل هذا:
acData.filterFunction = function(item:Object)
{
return
filterByPrice(item) &&
filterByType(item) &&
filterByCondition(item) &&
filterByVendor(item);
};
إذا رأيت عينة تستخدم filterFunctions
الجمع التي قبلت صفيف، نشر رابط. هذا ليس في أي مكان في الإطار المرن القياسي أو في بيتا 40 الجديدة AFAIK.
نصائح أخرى
يبدو أنك سوف تضطر إلى تمديد arraycollection لجعلها تعمل. هذا الرابط يجب أن تهجئه من أجلك: http://blog.rotundu.eu/flex/araycollection-with-multiple-filter-functions//