bootstrap multiselect使用Angular 2获取值

时间:2016-03-18 09:28:57

标签: twitter-bootstrap angular bootstrap-multiselect

我想在多选下拉列表中获取所选选项的值。 但是我没有通过ngModel..

完成这项工作

这里是html:

 <div class="col-xs-offset-1 col-xs-3">
    <form class="btn-group" id="select-form">
        <select id="dropdown-list" multiple="multiple" [(ngModel)]="selectedObject"></select>
       <button type="reset" id="reset-button" class="btn btn-default"><span class="glyphicon glyphicon-refresh"></span></button>
    </form>
</div>

这里是for循环,它将选项附加到select:

ngOnInit() {
    for(var i = 0; i < this.checks.length; i++){
        var append = this.checks[i];
        $('#dropdown-list').append('<option>'+ append.name +'</option>');
    }

这是因为ngFor在这里不起作用..但在这种情况下,这不是我的问题。

有人可以帮我记录选定的options = [(ngModel)]="selectObject"

1 个答案:

答案 0 :(得分:6)

似乎尚不支持多选,请参阅https://github.com/angular/angular/issues/4427

这是一种解决方法(不使用查询选择器):

@Component({
  selector: 'my-app',
  template: `{{title}}<p>
  <select multiple="multiple" (change)="change($event.target.options)">
    <option *ngFor="#item of items">{{item}}</option>
  </select>
  <p>{{selectedOptions | json}}`
})
export class AppComponent {
  title = "Angular 2 beta - multi select list";
  items = 'one two three'.split(' ');
  constructor() { console.clear(); }
  change(options) {
    this.selectedOptions = Array.apply(null,options)  // convert to real array
      .filter(option => option.selected)
      .map(option => option.value)
  }
}

Plunker