2017-07-27 9 views
0
私はこのようなforloopテンプレートで型無線機の入力を抱えている

入力タイプのラジオは、ページのロード後にリセットを確認

defaultSelected: number 

:defaultSelectedは私のコンポーネントでプロパティです

<ng-template ngFor [ngForOf]="numberOfOptions | reverse" let-item> 
     <input id="rating{{item}}" type="radio" name="rating" value="{{item}}" [(ngModel)]="alreadySelected" [checked]="item === defaultSelected"> 
     <label for="rating{{item}}">{{item}}</label> 
    </ng-template> 

ページがリロードされると、正しいラジオが選択されますが、突然、選択されていないラジオだけにリセットされます。

+0

NgModelが自動的に処理するため、チェックされたプロパティにバインドする必要はありません。 –

+0

私はそれを試みましたがバインドしません – user1007522

+1

あなたのコードでは、NgModelを 'alreadySelected'に適用していますが、コントローラには 'defaultSelected'があります。これは問題ではないですか? –

答えて

0

プロパティは次のように定義された:

set alreadySelected(value) { 
    this._alreadySelected = value 
    this.notify.emit(value); 
} 

しかし、それは私がこのようなゲッターを追加するために何ゲッターはありませんでした:

get alreadySelected(): number { 
    return this._alreadySelected 
} 

し、このようにチェックされているための条件を:

<input id="rating{{item}}" type="radio" name="rating" [value]="item" [(ngModel)]="alreadySelected" [checked]="item == alreadySelected"> 

次にdefaultSelectedを使用している場合は、オプションの場合:

ngOnInit(): void { 
    if (this.defaultSelected) { 
     this.alreadySelected = this.defaultSelected 
    } 
} 
関連する問題