2017-02-01 3 views
0

저는 Rxjs를 사용하여 요금제를 받고 있습니다. 선택 입력으로 설정하고 싶습니다.Rxjs를 사용하여 ng2-select2 지시문을 채우십시오.

현재 이러한 계획을 표시하기 위해 ng2-select2을 사용하고 있습니다. 모든

첫째, 나는 계획 양식 서버를 얻을 필요가 :

this.serverService 
     .list() 
     .subscribe(
      (result: any) => { 
       for (let plan of result) 
        this.plans.push({id: plan.id, text: plan.name}); 
      }, 
      (error: any) => { 

      } 
     ); 

, this.plans 내 angular2 구성 요소의 Array<Select2OptionData> 필드입니다.

그래서, select2this.plans에 바인더 제본되어

<select2 id="default-select" 
    (valueChanged)="select2Changed($event)" 
    [data]="plans" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    [width]="250" 
    [theme]="'bootstrap'"> 
</select2> 

그럼에도 불구하고, 나는 매우시기와 방법 this.plans 필드를 초기화 할 수 이해하지 않습니다.

  1. 언제 : constructor? ngOnInit에 다른 기능이 있습니까?
  2. HOW : Rx를 사용하고 있으므로 구독이 잘되면 select2 지시문 값에 계획이 표시되어야합니다.

나는 이렇게 잘 설명했으면한다.

답변

0

당신은 당신이 그것을 정의 할 때 변수 권리를 초기화 할 수 있습니다 :

private data: Array<Select2OptionData> = []; 

이 방법은 데이터를 반환하는 서비스를 기다리는 아무런 문제가 없습니다.

내가 관찰 한 사실은 관찰 가능이 항상 전체 옵션 목록을 방출한다고 가정 할 때 서비스 신청으로 데이터 배열에 중복 항목이 생길 수 있다는 것입니다. 그러나 이것이 귀하의 구현에 해당되는지는 알 수 없습니다.