سؤال

أنا جديد جدا إلى الزاوي، لكنني أشعر أن هذا هو نوع من الجنون.

لدي مجموعات متعددة يتم عرضها عبر NG-Repequ في نطاق وحدة تحكم واحدة. هناك حقل إدخال لكل قائمة لإجراء استعلام بسيط. كنت ألعب مع مرشحات مختلفة في التعليمات البرمجية وانتهى بي الأمر بوضع Console.log في وظيفة المرشح الخاصة بي. أدركت أنه في كل مرة تم استدعاء وظيفة المرشح الخاصة بي لقائمة واحدة، تم استدعاء جميع القوائم في النطاق. علاوة على ذلك، كان يدعو وظيفة المرشح مرتين في كل مرة. لذلك مع 3 مجموعات، سوف تصفية واحدة من القوائم استدعاء وظيفة المرشح 6 مرات.

اعتقدت أنه ربما كان مجرد عامل تصفية مخصص، لذلك جربته في وظيفة المرشح الافتراضي. نفس القصة. إليك الرمز الخاص بي:

href="https://dl.dropbox.com//u/905197/angular-filter-test.html" rel="noreferrer"> https://dl.dropbox.com/2/905197/ التصفية الزاوي - Test.html

انتقل إلى وحدة التحكم وانظر بنفسك: /

ماذا أفعل الخطأ هنا؟ هذا يبدو وكأنه شيء بسيط ولكنه يفعل الكثير من العمل.

هل كانت مفيدة؟

المحلول

هذا أمر طبيعي، يستخدم AngularJS نهجا "تحقق قذر"، لذلك يحتاج إلى استدعاء جميع المرشحات لمعرفة ما إذا كانت هناك تغييرات موجودة.بعد ذلك، يكتشف أن لديك تغيير في متغير واحد (الشخص الذي كتبته) ثم إعادة تنفيذ جميع المرشحات مرة أخرى للكشف عن ما إذا كان لديه تغييرات أخرى.

شاهد الإجابة الأولى من هذا السؤال

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