ngx идеальная функция обновления полосы прокрутки не определена? - PullRequest
1 голос
/ 19 марта 2019

Это первый раз, когда я пытаюсь использовать совершенную прокрутку, поэтому я мог что-то пропустить, но, глядя на документацию, он показывает некоторые функции, к которым можно получить доступ с помощью directiveRef, следующим образом

https://www.npmjs.com/package/ngx-perfect-scrollbar

enter image description here

После этого я попытался использовать обновление, потому что заметил, что контейнер не будет обновляться новыми элементами, если я не изменил размер окна, поэтому я проверилтолько для того, чтобы обнаружить, что функция update не определена и отсутствует в directiveRef вопреки тому, что указано в документации.

enter image description here

действительно будетблагодарен, если кто-нибудь может пролить свет на этот вопрос и указать мне правильное направление на случай, если я что-то пропустил по пути.Спасибо

Ответы [ 2 ]

1 голос
/ 19 марта 2019

В соответствии с традиционным шаблоном, которому следует каждая библиотека js, все основные функциональные возможности добавляются в прототип, чтобы любые изменения в прототипе объекта отражались во всех экземплярах объектов.

enter image description here

вы можете найти больше преимуществ от добавления методов к прототипу здесь

Ссылка на изображение: https://hackernoon.com/understand-nodejs-javascript-object-inheritance-proto-prototype-class-9bd951700b29

0 голосов
/ 19 марта 2019

исправил это с помощью https://npm.taobao.org/package/perfect-scrollbar Я сделал ссылку, используя Native element и затем используя update.как это

import PerfectScrollbar from 'perfect-scrollbar';

@ViewChild('perfectScroll') perfectScroll: ElementRef;
ps;

constructor(private psb: PerfectScrollService) {}

ngOnInit() {
    this.ps = new PerfectScrollbar(this.pScroll.nativeElement, {
      wheelSpeed: 2,
      wheelPropagation: true,
      minScrollbarLength: 20
    });
    this.psb.setBar(this.ps);
}

в моем perfectScrollService, я создавал экземпляр, затем вызывал update каждый раз, когда содержимое менялось

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class PerfectScrollService {
  perfectScrollBar: any;
  constructor() { }

  setBar(psb) {
    this.perfectScrollBar = psb;
  }

  update() {
    this.perfectScrollBar.update();
  }

}

, а затем использовал его вот так

    let newData;
    this.data[i].subscribe(
      value => (newData = value.concat(response.data[0]))
    );
    this.data$[i].next(newData);
    this.psb.update();
...