ionic 2填充从json中选择选项

joh*_*y 5 2 javascript typescript ionic-framework angular

我正在尝试ion-select使用json对象动态填充下拉列表.

我的html组件如下所示:

<ion-item [hidden]="editOptions.isEditing">
  <ion-note stacked color="primary">{{label}}</ion-note>
  <ion-note class="inline-edit"> {{value}}&nbsp;</ion-note>
</ion-item>
<ion-item [hidden]="!editOptions.isEditing">
  <ion-label stacked color="primary">{{label}}</ion-label>

  <ion-select [(ngModel)]="value" [selectOptions]="additionalData" [required]="required" [name]="value">
    <!--<ion-option>None</ion-option>-->
  </ion-select>
</ion-item>
Run Code Online (Sandbox Code Playgroud)

在我的调用代码中,我尝试填充选择选项,但他们在文档中没有示例

additionalData = {
  title: 'Pizza Toppings',
  subTitle: 'Select your toppings',
  mode: 'md'
};
Run Code Online (Sandbox Code Playgroud)

如何在不使用html中的*ngFor的情况下将我的选项添加到此选择中?我宁愿像这样传递它们:

additionalData = {
  title: 'Pizza Toppings',
  subTitle: 'Select your toppings',
  mode: 'md'
  options: [{id:1, description:'Pepperoni'}]
};
Run Code Online (Sandbox Code Playgroud)

rob*_*nnn 5

[selectOptions]用于传递创建选项(文档).所以你应该从你的json-object中创建一个可迭代的并使用*ngFor.

*ngFor 例:

访问对象键和值的简洁方法是通过使用答案中Object.keys建议的并在下面显示.

@Component({
  selector: 'my-page',
  templateURL: 'my-page.html
})

export class MyPage {
    // Make Object.keys available
    objectKeys = Object.keys;
    value = { option1: 'foo', option2: 'bar' };  

    constructor(){}
}
Run Code Online (Sandbox Code Playgroud)

HTML

...  
    <ion-select [(ngModel)]="value" [required]="true" [name]="value">
        <ion-option *ngFor="let option of objectKeys(value)">
            {{ value[option] }}
        </ion-option>
    </ion-select>
...
Run Code Online (Sandbox Code Playgroud)

这样就不需要实现基本上做同样事情的自定义管道了.