@ ng-select addTag, как проверить после добавления нового тега? - PullRequest
0 голосов
/ 12 октября 2018

я использую @ ng-select / ng-select

HTML-файл

<ng-select [items]="_Customers"
           [addTag]="addTagPromise"
           [bindLabel]="'name'"
           [(ngModel)]="selectedCustomer">
</ng-select>

addTag работает, но функция addTagPromise внутри уже определенных значений недоступна

ts файл

  _Customers: any[] = [];
  companies = ['company one', 'company Two', 'company three'];
  selectedCustomer;

  ngOnInit() {
     this.companies.forEach((c, i) => {
         this._Customers.push({ id: i, name: c });
     });
  }

  addTagPromise(name) {
    console.log(this._Customers);
     return new Promise((resolve) => {
        setTimeout(() => {
            resolve({ id: 5, name: name, valid: true });
         }, 1000);
     })
  }

печатный журнал undefined

как получить доступ к уже определенным значениям внутри функции addTagPromise?

1 Ответ

0 голосов
/ 09 мая 2019

Привет, извините, если я опаздываю на вечеринку, но проблема вызвана тем, как обрабатывается привязка "this".поскольку вы просто объявили метод в своем классе, это подразумевается (извините, я не знаю точно, как это обрабатывается), поэтому лучший способ - просто изменить свой метод на

  addTagPromise: (value: any): Promise<any>;
  ngOnInit() {
     ...
     this.addTagPromise = ()=>{
       //Code the function here 
     }

  }

, если он будет выполнен таким образомсделайте так, чтобы ваша функция this была связана, потому что функция стрелки автоматически связывает вашу this.

Опять извините за поздний ответ!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...