如何将ionic3星级动态值绑定到ionic中的数据对象

时间:2018-12-05 03:46:21

标签: typescript ionic-framework data-binding

我遇到了一些问题。 我有一个额定参数的动态表格输入,我尝试使用ionic3-star-rating模块; https://www.npmjs.com/package/ionic3-star-rating。打包其工作,但是我无法将动态值绑定到我的对象中。

这样的代码;
input-scanner.html

<div *ngFor="let dataP of dataParameter">
    <ion-row class="parameter-input">
        <ion-item text-center class="xgray">
            <h4 class="h-title">{{dataP.name}}</h4>
        </ion-item>
        <ion-item no-padding text-center class="silver">
            <ionic3-star-rating activeIcon="star" defaultIcon="star-outline" activeColor="#e6821e" defaultColor="#404040" readonly="false" [rating]="0"> 
            </ionic3-star-rating> 
        </ion-item>
        <ion-item class="item-input">
            <ion-input type="text"  placeholder="Masukkan notes.." [(ngModel)]="dataP.notes"></ion-input>
        </ion-item>
    </ion-row>
</div>
<button ion-button icon-only (click)="saveRecord(dataParameter)">
    <ion-icon name="checkmark"></ion-icon>
</button>

input-scanner.ts

constructor(
    public navCtrl: NavController, 
    public navParams: NavParams,
    public events: Events,
    public toastCtrl : ToastController,
    public alCtrl : AlertController) {

    events.subscribe('star-rating:changed', (starRating) => 
      {
        this.bindRatingId(1,starRating)  

//我如何获取ID; (1)从我的活动中动态单击ionic3星级吗?

    });
  }

  ionViewDidLoad() {
    this.getDataParameter();
  }
  bindRatingId(id,starRating){
    console.log(starRating);
  }
  getDataParameter(){
    var data = [
      {"name":"FIRE BOX. No.157","id":1,"rating":"","notes":""},
      {"name":"PIPA. No.158","id":2,"rating":"","notes":""},
      {"name":"FIRE BOX. No.158","id":3,"rating":"","notes":""},
    ];
    for(let v of data){
        this.dataParameter.push(v);
    }
  }
  saveRecord(data){
    console.log(data);
  }

当我单击按钮saveRecord时,结果为;

[
  {"name":"FIRE BOX. No.157","id":1,"rating":"5","notes":"some input"},
  {"name":"PIPA. No.158","id":2,"rating":"","notes":""},
  {"name":"FIRE BOX. No.158","id":3,"rating":"","notes":"" }
]

评级值未动态设置到我的对象中:(,
 因为我在bindRatingId()中设置了手册,只是设置了id = 1。

如何从ionic3-star-rating模块动态获取值?当我尝试在attributee中添加[(ngModel)]时,出现错误代码。 有人可以帮我吗?谢谢你:)

2 个答案:

答案 0 :(得分:1)

伙计们。我现在已经解决了这个问题,我只将ionic3-star-rating软件包更改为ionic2-rating模块。使用ngModel :)可以正常工作

答案 1 :(得分:0)

请将评分数据类型存储为数字,并应用以下代码。

<div *ngFor="let dataP of dataParameter">
        <ion-row class="parameter-input">
            <ion-item text-center class="xgray">
                <h4 class="h-title">{{dataP.name}}</h4>
            </ion-item>
            <ion-item no-padding text-center class="silver">
                <ionic3-star-rating activeIcon="star" defaultIcon="star-outline" activeColor="#e6821e" defaultColor="#404040" readonly="false" [rating]="dataP.rating"> 
                </ionic3-star-rating> 
            </ion-item>
            <ion-item class="item-input">
                <ion-input type="text"  placeholder="Masukkan notes.." [(ngModel)]="dataP.notes"></ion-input>
            </ion-item>
        </ion-row>
    </div>