Конфигурация модуля библиотеки Angular 6 - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть проект Angular с несколькими библиотеками / проектами внутри. Одна из этих библиотек - это пользовательская карусель (которая использует hammerjs), которую я могу использовать в любой другой библиотеке. Проблема в том, что вы хотите установить config для hammerjs в модуле карусели, не устанавливая его в оболочке. Так что он обрабатывает все свои собственные конфигурации. Это работает, только если я установил его в оболочке app.module.ts, а не в carousel.module.ts.

Например, Я хочу установить

export class MyHammerConfig extends HammerGestureConfig {
  buildHammer(element: HTMLElement) {
    let mc = new Hammer(element, {
      touchAction: 'pan-y',
      recognizers: [
        [Hammer.Pan, { direction: Hammer.DIRECTION_HORIZONTAL }],
      ],
    });
    return mc;
  }
} 

и

providers: [{ provide: HAMMER_GESTURE_CONFIG, useClass: MyHammerConfig }]

Кто-нибудь знает, как заставить любую потребляющую библиотеку использовать конфигурацию из библиотеки, которую она потребляет?

Спасибо

1 Ответ

0 голосов
/ 07 сентября 2018

В настоящее время Angular ограничивается тем, что плагины событий должны создаваться во время начальной загрузки. В краткосрочной перспективе вы можете добавить провайдера только для конфигурации жеста Хаммера только в модуле приложения.

https://github.com/angular/angular/issues/19874

...