Ngx-drag-scroll: بدء ngx- سحب التمرير من الفهرس المحدد

تم إنشاؤها على ٢١ أكتوبر ٢٠١٨  ·  7تعليقات  ·  مصدر: bfwg/ngx-drag-scroll

  • أنا أرسل ...

    • [ ] تقرير الشوائب
    • [x] طلب ميزة
    • [] support request => الرجاء عدم إرسال طلب الدعم هنا ، راجع الملاحظة أعلى هذا النموذج.
  • هل تريد طلب ميزة أو الإبلاغ عن خطأ ؟

هل من الممكن بدء السحب من فهرس آخر غير 0؟

  • ما هو السلوك الحالي؟
    في الوقت الحالي ، يبدأ السحب التمرير من أول صورة / مكون افتراضيًا.

  • ما هو الدافع / حالة الاستخدام لتغيير السلوك؟
    سيكون من الجيد اختيار الفهرس حيث تبدأ عملية السحب (عند التحميل).

feature request

التعليق الأكثر فائدة

يمكنك بالفعل تحقيق إعداد الفهرس الأولي عن طريق استدعاء moveTo في كتلة `ngAfterViewInit. تأكد من إنهاء المكالمة بـ setTimeout (() => {...} ، 0) ؛
علي سبيل المثال:

  @ViewChild('nav', {read: DragScrollComponent}) ds: DragScrollComponent;
  ngAfterViewInit() {
    setTimeout(() => {
      this.ds.moveTo(3);
    }, 0);
  }

ال 7 كومينتر

يمكنك بالفعل تحقيق إعداد الفهرس الأولي عن طريق استدعاء moveTo في كتلة `ngAfterViewInit. تأكد من إنهاء المكالمة بـ setTimeout (() => {...} ، 0) ؛
علي سبيل المثال:

  @ViewChild('nav', {read: DragScrollComponent}) ds: DragScrollComponent;
  ngAfterViewInit() {
    setTimeout(() => {
      this.ds.moveTo(3);
    }, 0);
  }

حاولت بالفعل .. ، للأسف أتلقى هذا الخطأ في كل مرة:

core.js:1673 ERROR TypeError: Cannot read property '_elementRef' of undefined at DragScrollComponent.push../node_modules/ngx-drag-scroll/lib/ngx-drag-scroll.js.DragScrollComponent.maximumIndex (ngx-drag-scroll.js:415) at DragScrollComponent.push../node_modules/ngx-drag-scroll/lib/ngx-drag-scroll.js.DragScrollComponent.moveTo (ngx-drag-scroll.js:214) at myComponent.component.ts:141 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) at Object.onInvokeTask (core.js:3815) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188) at push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask (zone.js:496) at ZoneTask.invoke (zone.js:485) at timer (zone.js:2054)

هل تتصل بـ moveTo في نطاق ngAfterViewInit block؟ يمكن استدعاء طريقة moveTo عندما يكون عنصر حلقة تمرير التمرير مرئيًا على الصفحة.
أو يمكنك إضافة القليل من التأخير والمحاولة مرة أخرى مثل:

    setTimeout(() => {
      this.ds.moveTo(3);
    }, 1000);

دعنا نذهب للعمل.

فعلت. ولكن مع انتهاء مهلة 1 ثانية ، يعمل الآن! شكرا للمساعدة ، على الرغم من أنها متطرفة بعض الشيء.

حسنًا ، بدون النظر إلى الكود ، لا يمكنني معرفة سبب عدم نجاح ngAfterViewInit من أجلك. أود أن أقول استخدام setTimeout في الوقت الحالي حتى يتم إيقاف هذه الميزة. العلاقات العامة أكثر من موضع ترحيب.

يمكنك بالفعل تحقيق إعداد الفهرس الأولي عن طريق استدعاء moveTo في كتلة `ngAfterViewInit. تأكد من إنهاء المكالمة بـ setTimeout (() => {...} ، 0) ؛
علي سبيل المثال:

  @ViewChild('nav', {read: DragScrollComponent}) ds: DragScrollComponent;
  ngAfterViewInit() {
    setTimeout(() => {
      this.ds.moveTo(3);
    }, 0);
  }

مرحبا الرجاء إضافة هذه الميزة في الوثائق.

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

ngAfterViewInit(){
  setTimeout(()=>{
    this.ds.currIndex = 3;
    this.ds._elementRef.nativeElement.children[0].scrollLeft = someValue;
  }, 10);
}
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

suresh2018 picture suresh2018  ·  22تعليقات

bfwg picture bfwg  ·  13تعليقات

MortezaT picture MortezaT  ·  11تعليقات

IlCallo picture IlCallo  ·  12تعليقات

MortezaT picture MortezaT  ·  5تعليقات