2016-09-26 3 views
0

저는 Angular2와 ngSemantic 라이브러리를 사용하고 있습니다. 나는 양식을 작성하고 여기에 내 코드 :ngSemantic select가 객체에 바인딩되지 않습니다.

템플릿 파일 :

<div class="container"> 
    <h1>My first form</h1> 
    <form class="ui form" [formGroup]="myForm"> 
     <sm-loader [complete]="!submitted" class="inverted" text="Loading..."></sm-loader> 

     <div class="field"> 
      <sm-select [(model)]="firstSelect" [control]="myForm.controls.category" placeholder="Search..." class="fluid search"> 
       <option *ngFor="let item of itemslist" [value]="item">{{item.name}}</option> 
      </sm-select> 
     </div> 

     <div class="field"> 
      <sm-select placeholder="Search..." class="fluid search"> 
       <option *ngFor="let i of firstSelect?.items">{{i}}</option> 
      </sm-select> 
     </div> 

     <sm-button (click)="onSubmit()" [disabled]="!myForm.valid" class="primary">Login</sm-button> 
    </form> 
</div> 

구성 요소 파일 : firstSelect 결과가 될하기 때문에

itemslist: any = [ 
    { name: 'first', items: ['one', 'two', 'three']}, 
    { name: 'second', items: ['one', 'two', 'three']}, 
    { name: 'third', items: ['one', 'two', 'three']} 
]; 

constructor(private dataService: DataService, fb: FormBuilder) { 
    this.myForm = fb.group({ 
     'category': [], 
     'subcategory': [], 
     'name': [], 
     'email': [] 
    }); 
} 

두 번째 선택의 루프가 작동하지 않습니다 문자열 대신 Object을 입력하십시오. 이는/option과 또는 number 만 처리하기 때문에 발생합니다.

어떻게 해결할 수 있습니까?

답변

0

{{...}} 문자열 보간을 수행합니다. 오브젝트 인스턴스를 전달하려는 경우에는 사용하지 마십시오. 객체 바인딩을 사용하기 위해

대신

[value]="item" 
+0

네, 알고 있습니다. 나는 나의 질문을 편집했다, 그것은 오타였다. 죄송합니다. 회신 해 주셔서 감사합니다. 어쨌든 작동하지 않습니다. – smartmouse

+1

'sm-select'에 대해서는 모르겠지만 보통의 선택에서는 ''요소에 문자열 대신 객체를 바인딩 할 때'[ngValue] = "..."'를 사용해야합니다. –

+0

알아. 'option'에'select'와'ngValue'를 사용하면 작동합니다 : ( – smartmouse

관련 문제