2017-02-18 2 views
0

Ich habe eine div mit * ngFor, die Werte von JSON lädt. Ich muss Werte von verschiedenen json Dateien nach dem Zufall laden. Hier bekommt das div einen Wert von 'mydata', das nächste Mal muss ich Werte von einem anderen json bekommen. Wie kann ich das machen? i über Math.floor gehört ((Math.random(). Wie mit diesem ich tun? Oder andere Methoden?Laden Sie Json-Dateien zufällig in ionische

html file 
     <div class="row" *ngFor="let data of mydata"> 
     <div class="col">{{data.number}}</div> 
     <div class="col">{{data.code}}</div>   
     </div> 



ts file 

import { Component } from '@angular/core'; 
import { NavController, NavParams } from 'ionic-angular'; 

@Component({ 
selector: 'page-showall', 
templateUrl: 'showall.html' 
}) 
export class ShowallPage { 

constructor(public navCtrl: NavController, public navParams: NavParams) { 

} 

// i am providing data here instead of json for development. 
    datas = [ 
{ 
    number: "1", 
    code: "apple", 

}, 
{ 
    number: "2", 
    code: "orange", 

}, 
{ 
    number: "3", 
    code: "banana", 

},{ 
    number: "50", 
    code: "lemon", 

} 

    ]; 

    mydata = this.datas; 

    // i am using this 'mydata' variable in *ngFor to get values 

} 
+0

mit angular1 kann ich tun? –

+0

im andgular 2 in ionischen 2 – jijishthomas

Antwort

0

In Ihrer Klasse, die Sie erstellt haben, haben Sie aus dem JSON-Datei, die Sie lesen und es zu Daten zugeordnet

erstellen Sie ein Array von Orten, die Sie aus lesen möchten und initialisieren Sie es von Ihrem Konstruktor

public locations: Array<string>; 

this.locations = ['firstLocation.json', 'secondLocation.json']; 
let randomJsonFile = this.locations[Math.floor((Math.random() * this.locations.length) + 1)]; 

EDIT:..
(OP hinzugefügt, um eine detailliertere Frage)

// Outside of the constructor (inside of the class) 

    mydata: Array<Object>; 
    datas0: Array<Object>; 
    datas1: Array<Object>; 
    datas2: Array<Object>; 
    datasCollection: Array<Object>; 

    // Inside of the constructor 

     this.datas0 = [ 
     { number: "1", code: "apple0" }, 
     { number: "2", code: "orange0" }, 
     { number: "3", code: "banana0" }, 
     { number: "50", code: "lemon0" } 
     ]; 

     this.datas1 = [ 
     { number: "1", code: "apple1" }, 
     { number: "2", code: "orange1" }, 
     { number: "3", code: "banana1" }, 
     { number: "50", code: "lemon1" } 
     ]; 

     this.datas2 = [ 
     { number: "1", code: "apple2" }, 
     { number: "2", code: "orange2" }, 
     { number: "3", code: "banana2" }, 
     { number: "50", code: "lemon2" } 
     ]; 

     this.datasCollection.push(this.datas0, this.datas1, this.datas2); 

     this.mydata = this.datasCollection[Math.floor((Math.random() * this.datasCollection.length) + 1)]; 
+0

mit: Ich bin ionischen, so kann u den Code erklären pls ich habe 5 jsons nämlich one.json, two.json, three.json, four.json & five.json Ich brauche die Werte aus den Jsons im folgenden Code: mydata = this.datas; Ich verwende diese "Mydata" in * ngFor = "Daten von Mydata"> – jijishthomas

+0

Bitte aktualisieren Sie Ihre erste Frage mit einer ausführlicheren Frage und fügen Sie Code Beispiele Ihrer Klasse. –

+0

Ich hatte die Frage – jijishthomas