如何使用指令更改ng-select的项目?

时间:2019-03-02 17:38:33

标签: angular angular-ngselect

我认为我缺少一些非常基本的东西,请原谅我,但我确实找不到问题。

我只想使用指令设置ng-select的参数(包括项目)。它正在处理一些诸如clearAllText的静态属性,但是我不能使用指令来更改项目。

以下是示例:https://stackblitz.com/edit/ng-select-tests-share

2 个答案:

答案 0 :(得分:1)

我可能是错的,但是我认为您想要的是不可能的。

ng-select 使用OnPush更改检测策略。因此,当您在ng-select组件中设置[items]="currenciesData"时,更改项目的唯一方法是当currencyData引用更改时。在您的指令中,您试图更改对items无效的currenciesData的引用。

由于currenciesDatang-select的外部变量,因此似乎无法在ng-select内的指令中对其进行修改。

答案 1 :(得分:1)

我从优秀的开发人员朋友那里寻求帮助,这是解决方案

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

并完成应用链接: https://stackblitz.com/edit/ng-select-update-from-directive