【问题标题】:ionic 2 ion-radio error with loopionic 2 带环的离子无线电错误
【发布时间】: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


【解决方案1】:

只是改变

<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>

进入

<ion-list class="rooms" padding radio-group [(ngModel)]="selectedRoom">

  <ion-card class="room-card" *ngFor="let r of data?.rooms">
    <ion-card-content>
      <div class="left">
        <ion-radio [value]="r?.room_id"></ion-radio>
      </div>
      <div class="right" (click)="showRoomDetail(r?.room_id)">
        <ion-card-title>
          {{ r?.name }} {{ r?.room_id }}
        </ion-card-title>
        <p color="warning">&nbsp;Rp. {{ r?.cost }}</p>
      </div>
    </ion-card-content>
  </ion-card> 

</ion-list>

这只是插值问题,不是来自 ionic,而是来自我的代码

【讨论】:

  • 只是好奇。您正在设置 checked="selectedRoom....."selectedRoom 仅设置在 ngOnInit() 上,并且在任何地方都没有更改。 selectedRoom 不应该根据选择的房间/单选按钮而改变吗?
  • 好吧,如果您需要帮助,请告诉我 :)
猜你喜欢
  • 2019-05-30
  • 2014-11-20
  • 1970-01-01
  • 2019-05-18
  • 2018-12-15
  • 2017-09-21
  • 2017-02-06
  • 1970-01-01
  • 2022-07-01
相关资源
最近更新 更多