Angular 7, устанавливающий выбранное значение, а не событие изменения стрельбы - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть один выпадающий список и множественный выбор. Оба имеют динамическое значение.

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

Я динамически выбираю имя модуля, оно работает отлично, но не работает зависимый множественный выбор. Я думаю, что одиночный выбор не является событием изменения стрельбы.

HTML:

<div class="col-md-12">
    <label for="module">Select Module</label>
    <select class="form-control" (change)="onChangeModuleDD($event)" name="moduleSelection" required>
    <option value="">-- Select Module --</option>
    <option *ngFor="let module of allModuleData" [value]="module | json" [selected]="module.name == usermodule">{{
        module.name
        }}</option>
    </select>
</div>

<div class="col-md-12">
    <label for="actions">Select Actions/Charts</label>
    <ng-multiselect-dropdown [placeholder]="'-- Select Action/Charts --'" [data]="dropdownList" [settings]="dropdownSettings"
        (onSelect)="onItemSelect($event)" name="actionSelection" (onDeSelect)="OnItemDeSelect($event)"
        (onSelectAll)="onSelectAll($event)" (onDeSelectAll)="onDeSelectAll($event)">
    </ng-multiselect-dropdown>
</div>

КОМПОНЕНТ:

onChangeModuleDD(event) {
    this.selectedItems = [] // empty selected action array
    this.dropdownList = []
    let value = event.target.value

    if (value) {
      let parsedValue = JSON.parse(value)
      this.usermodule = parsedValue.name

      if (parsedValue.hasCRUD == 0) {
        this.userListingApi.fetchAllDashboardAction().subscribe(res => {
          this.dropdownList = []
          for (let i = 0; i < res['data'].length; i++) {
            this.dropdownList.push(res['data'][i])
          }
        })
      } else {
        this.userListingApi.fetchAllCRUDAction().subscribe(res => {
          this.dropdownList = []
          for (let i = 0; i < res['data'].length; i++) {
            this.dropdownList.push(res['data'][i])
          }
        })
      }
    } else {
      console.log('Nothing to display')
    }
  }

Во время вставки он работает отлично, но когда я выбираю динамически, он не работает.

РЕДАКТИРОВАТЬ:

onItemSelect(item: any) {
    this.selectedItems.push(item)
}

OnItemDeSelect(items: any) {
    var id = items._id
    this.selectedItems = this.selectedItems.filter((item) => item['_id'] !== id);
  }

onDeSelectAll(items: any) {
    this.selectedItems = items
  }

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Не уверен, что он вообще должен работать. Пожалуйста, посмотрите на эту проблему: https://github.com/NileshPatel17/ng-multiselect-dropdown/issues/5.

Вероятно, после перезагрузки события стираются [data] (см. Мой комментарий).

0 голосов
/ 16 апреля 2019

в вашем компоненте я не вижу onItemSelect ($ event), OnItemDeSelect ($ event) и другой метод множественного выбора, привязываемый к событию.

проверьте эту ссылку: https://www.npmjs.com/package/ng-multiselect-dropdown

addэто в вашем компоненте и попробуйте:

 onItemSelect(item: any) {
 console.log(item);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...