【发布时间】:2017-06-11 15:13:48
【问题描述】:
我在使用 ionic 2 ion-radio 时遇到了问题。
想法是:组件从使用 HTTP 的服务获取数据并将值分配给 ngOnInit 内的 data 属性,但无法选择单选按钮。
模板:
<ion-list class="rooms" padding radio-group>
<ion-item *ngFor="let r of data?.rooms">
<ion-label >{{ r?.name }}</ion-label>
<ion-radio checked="{{ selectedRoom == r?.id }}" value="{{ r?.id }}"></ion-radio>
</ion-item>
</ion-list>
组件:
import { Component, OnInit } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { BookConfirmPage } from '../bookconfirm/bookconfirm';
import { RoomDetailPage } from '../roomdetail/room';
import { HotelService } from '../../providers/hotel/hotelservice';
@Component({
selector: 'page-hotel-detail',
templateUrl: 'hotel.html',
providers: [HotelService]
})
export class HotelDetailPage implements OnInit {
public data;
public selectedRoom: number;
constructor(
private navCtrl: NavController,
private hotelServ: HotelService,
private navParams: NavParams
) { }
ngOnInit(): void {
// u need a interface to make data readable and consistent.
// this really unrecomended. for learn only.
let id = this.navParams.get('id');
let idRoom = this.navParams.get('idRoom');
this.hotelServ.get(id).then(res => {
this.data = res;
//console.log(res);
})
.catch(err => console.log(err));
this.selectedRoom = idRoom;
}
showBookConfirm(id) {
console.log(this.selectedRoom)
this.navCtrl.push(BookConfirmPage, { 'id': id });
}
showRoomDetail(id) {
this.navCtrl.push(RoomDetailPage, { 'id': id });
}
}
编辑:
这只是我的代码中的插值问题。只需更改模板。 [valye]="r?.id"
【问题讨论】:
-
您的问题解决了吗?正如您的编辑所暗示的那样。如果不是,它可能很容易修复。如果是,请回答您的问题并接受它,将防止不必要的关注:)
-
是的,如何回答我的问题并接受它?这里没有解决的标记。 [编辑]好的,我找到了。 XD 并等待 2 天。 :) 感谢您的关注。
标签: angular typescript ionic-framework ionic2