سؤال

أنا أعمل على مكون بحث للتطبيق الذي أعمل عليه وأني أحتاج إلى إضافة بعض المرشحات إليه. لقد وجدت مثالا وحصلت على المرشح الأول يعمل بشكل جيد.

الآن أحاول إضافة مرشح ثان أعاني من مشاكل ... في المثال، وجدت أنهم يستخدمون المرشحين، لكنني فقط أحصل على خيار للتصفية، لماذا هذا؟

إليك رمز المثال

   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//

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top