Как связать динамическое значение звездного рейтинга ionic3 в объект данных в ионном - PullRequest
0 голосов
/ 05 декабря 2018

У меня проблемы.У меня есть динамическая форма ввода параметра рейтинга, я пытаюсь использовать модуль 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)  

// как я могу получить идентификатор;(1) динамически ли из моего события нажимать ионную звездочку-рейтинг?

    });
  }

  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?когда я пытаюсь добавить [(ngModel)] в атрибут, у меня появляется код ошибки.кто-нибудь может мне помочь, пожалуйста?спасибо перед этим :))

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Ок, ребята.Я исправил проблему прямо сейчас, я только изменяю пакет ionic3-star-rating на модуль ionic2-rating.Работает нормально, с ngModel:)

0 голосов
/ 05 декабря 2018

Пожалуйста, сохраните тип данных рейтинга в виде числа и примените приведенный ниже код.

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...