Переменная md5 присваивает одно и то же значение - PullRequest
0 голосов
/ 06 июня 2018

Я хочу создать переменную md5 и использовать ее для хеширования уникальных значений формы и отправки в API для уникальных данных, однако каждый раз, когда я отправляю данные, значение md5 одинаково.

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, Platform  } from 'ionic-angular';
import { ModalController, ViewController } from 'ionic-angular';
import { NgForm } from '@angular/forms';
import { Md5 } from 'ts-md5/dist/md5';
import { Geolocation } from '@ionic-native/geolocation';

@IonicPage()
@Component({
selector: 'page-bol',
templateUrl: 'bol.html',
})
export class BolPage {

private chemInfo:any[] = [];
private submitAllData:any[] = [];
private lonlat:any = [];
private md5Data:any;
constructor(public navCtrl: NavController,
          public navParams: NavParams,
          public modalCtrl: ModalController,
          private geolocation: Geolocation
          private platform: Platform) {
  }

ionViewDidLoad() {

   /* Ensure the platform is ready */
   this.platform.ready().then(() => {
   /* Perform initial geolocation */
   this.geolocation.getCurrentPosition().then((resp) => {
       this.lonlat = [resp.coords.latitude,resp.coords.longitude];
       console.log(this.lonlat);
     }).catch((error) => {
       console.log('Error getting location', error);
     });
   });
}

submitBOL(form: NgForm){
   //console.log(form.value);
   var md5 = new Md5();
   this.submitAllData.push(form.value,{'sub':this.chemInfo}, 
  {'gpsLoc':this.lonlat.toString()});

   //In theory this value should be unique every time
   this.md5Data = md5.appendStr(form.value.toString()).appendStr(this.chemInfo.toString()).appendStr(this.lonlat.toString()).end();
   this.submitAllData.push({'md5':this.md5Data});
   console.log(this.submitAllData);
}

Я продолжаю получать это значение из консоли: {"md5": "703137aef9805f0ca95b8c8b56619f84"}, и я не уверен, почему это всегда одно и то же значение.Я не очень знаком с этой функциональностью в Ionic, поэтому любая обратная связь помогает.Спасибо!

1 Ответ

0 голосов
/ 07 июня 2018

Мне кажется, я нашел свой ответ.Очевидно, что-то на моей локальной машине вызывало хэш-печать той же строки md5, но я пошел дальше и протестировал ее на своем устройстве Android, и она работала нормально!Я точно знаю, что очень редко данные будут такими же, не говоря уже о местоположении GPS.Поэтому я несколько раз тестировал на устройстве, и каждый раз он давал мне уникальный хэш!

edit: я также немного изменил код, и это, похоже, проблема.

  (JSON.stringify(form.value)).appendStr(JSON.stringify(this.chemInfo))

Я пытался получить массив в строку, используя .toString () вместо JSON.stringify, который возвращал объект вместо строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...