Как я могу изменить элементы ng-select с помощью директивы? - PullRequest
0 голосов
/ 02 марта 2019

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

Я просто хочу установить параметры ng-select (включая элементы) с помощью директивы.Он работает с некоторыми статическими свойствами, такими как clearAllText, но я не могу использовать свою директиву для изменения элементов.

Вот пример: https://stackblitz.com/edit/ng-select-tests-share

Ответы [ 2 ]

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

Я попросил помощи у великих друзей разработчиков, и вот решение

hostSelectComponent.ngOnChanges({
  items: {
    previousValue: [],
    currentValue: hostSelectComponent.items,
    firstChange: false,
    isFirstChange: () => false,
  }
});

И полная ссылка на приложение: https://stackblitz.com/edit/ng-select-update-from-directive

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

Я могу ошибаться, но я думаю, что вы хотите, это невозможно.

ng-select использует стратегию обнаружения изменений OnPush.поэтому, когда вы устанавливаете [items]="currenciesData" в компоненте ng-select, единственный способ изменить элементы - это когда ссылка на currencyciesData изменяется.В вашей директиве вы пытались изменить ссылку на items, которая не влияет на currenciesData.

Поскольку currenciesData является внешней переменной на ng-select, кажется, вы не можете ее изменитьв директиве внутри ng-select.

...