根据来自其他多项选择离子选择元素的选择,自动使用项目填充离子选择

时间:2019-04-25 04:37:15

标签: angular ionic-framework graphql

我试图根据另一个多重选择的选择,使用可从GraphQL检索项目列表的ID,自动填充ionic-selectable多重选择框中的项目。

我对Ionic和Angular还是很陌生,所以很难找到所需的信息。看起来该项目正在使用离子角3.9.2。

至少,这是次要多重选择,目前,除了名称之外,其他所有选择都与主要多重选择相同,主要多重选择仅是“元素”。我已经复制了需要重复的元素,因为主要/次要部分也相同,除了次要上的外键。

<ion-list>
  <ion-item>
    <ion-label stacked color="primary">Secondary Elements</ion-label>
    <ionic-selectable
            #secondaryElementsComponent
        item-content
        formControlName="secondary_elements"
        [items]="secondary_elements"
        itemValueField="id"
        itemTextField="name"
        [canSearch]="true"
        [isMultiple]="true"
        [canClear]="true"
        [(ngModel)]="user.secondary_elements"
            [isOkButtonEnabled]="secondaryElementsComponent.itemsToConfirm.length > 1 && secondaryElementsComponent.itemsToConfirm.length <= 5"
    ></ionic-selectable>
  </ion-item>
</ion-list>

还有一种用于填充选择的关联方法,除了引用“ element(s)”而不是“ secondary_element(s)”之外,该方法也相同。

formatModelsForSelects(){
    // [...]

    if (this.user.secondary_elements) {
        if(this.user.secondary_elements.length){
            var secondary_elements_object_array = [];
            this.user.secondary_elements.forEach( (element) => {
                var secondary_element_in_elements = this.secondary_elements.find(s => s.id == secondary_element);
                if (secondary_element_in_elements)
                    secondary_elements_object_array.push(secondary_element_in_elements)
            });

            if (secondary_elements_object_array.length)
                this.user.secondary_elements = secondary_elements_object_array;
        }
    }
}

本质上,“ secondary_elements”需要显示所有具有element_id且ID与elements匹配的项。

0 个答案:

没有答案