从下拉列表中获取选定的值

时间:2018-10-02 08:16:12

标签: javascript angular

我已经在使用AngularJS的项目中实现了一个下拉列表。

HTML片段如下:

<input-multiselect [list]="transactionState" placeholder="Choose Your Transaction State">
<ng-container class="c-legend">Transaction status</ng-container>
</input-multiselect> 

我正在使用一个数组和一个开关大小写来存储下拉列表中一些不同情况所需的值。

JS代码如下:

export class SearchPageComponent implements OnInit {
    transactionState: Array<any>;
    setTransactionDropdown() {
        switch (this.userGroup) {
            case 5:
               this.transactionState = [
                  { value: 'READY_INV', label: 'Ready for Invites' },
                  { value: 'NOT_READY_INV', label: 'Not Ready for Invites' },
               ];
               break;
          }
     }

我想做的是有一个可以访问this.transactionState并获取已选择值的函数,以便可以将这些值传递给另一个函数。

有人可以帮我吗?我可以使用更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我找到的解决方案是在每种情况下添加一个函数调用,并带有一个标志让我知道已检查的内容。标记为value: true 请在下面找到代码段:

case 1:
        this.transactionState = [
          { value: true , code: 'INV_SENT', label: 'Invites Sent' },
        this.getTransactionStateInfo();

该函数本身循环遍历名为this.transactionState的对象,并获取标记为true的值并将它们推入另一个可用于其他用途的数组。

getTransactionStateInfo() {
    const transactionStateObj: any = [];
    this.transactionState.forEach((i) => {
      if (i.value === true) {
        console.log(i.code);
        transactionStateObj.push(i.code);
      }
    });
 }