【问题标题】:How to bind ionic3-star-rating dynamic value into data object in ionic如何将 ionic3 星级动态值绑定到 ionic 中的数据对象中
【发布时间】:2018-12-06 17:01:46
【问题描述】:

我遇到了一些问题。 我有一个评级参数的动态表单输入,我尝试使用 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-star-rating?

    });
  }

  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);
  }

当我单击按钮保存记录时,结果是;

[
  {"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 模块动态获取值?当我尝试在属性中添加 [(ngModel)] 时,我有一个错误代码。 有人可以帮助我吗?在此之前谢谢你:)

【问题讨论】:

    标签: typescript ionic-framework data-binding


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 同理。只需更改视图,不绑定数据模型 :(
      猜你喜欢
      • 2019-08-16
      • 2016-12-31
      • 2016-12-26
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 2019-05-18
      • 2013-05-03
      相关资源
      最近更新 更多