2016-08-04 21 views
0

Ich habe versucht, den Grund zu finden, warum meine Ionic Vorlage nicht JSON-Daten anzeigt. Ich habe gerade angefangen zu arbeiten und über ionische Rahmen und angularjs zu lesen.JSON Anzeigen von Daten nicht auf Ionic HTML-Vorlage

bitte tragen Sie mit meinen Anfängerfragen;

1.) Was ist der Fehler oder Ursache, warum die json Datensatz nicht auf der HTML angezeigt wird?

2.) Ich habe viele Code-Beispiele gesehen, wo die Json Codes auf dem controller.js stattdessen auf der services.js geschrieben. Welches ist Standard und sicher?

3.) ich Zweifel habe meine Json Ausgang in Bezug auf, Kann jemand bitte bestätigen, ob das Format korrekt ist.

Sie helfen hier ist wirklich geschätzt. Vielen Dank im Voraus

hier ist mein Console Status:

Objectconfig: Objectdata: Array[1]0: Array[1]0: Array[1]0: 
Objectcapacity: "7"fuelcap: "120" 
make: "Nissan"model: "LoadMaster II"platenumber: "TRG0122" 
vehiclecode: "TRK0004"vehicleid: "8"wheelnumber: "10" 
__proto__: Objectlength: 1__proto__: Array[0] 
length: 1__proto__: Array[0]length: 1__proto__: Array[0]headers: (name)status: 200statusText: "OK"__proto__: Object 

Auf meiner Vorlage/HTML-Datei:

<ion-list id="vehicleInformation-list1" class=" " ng-repeat="recs in vehiclerecord"> 
    <ion-item id="vehicleInformation-list-item1" class=" ">Vehicle Model 
     <span class="item-note">{{ recs.model }}</span> 
    </ion-item> 
</ion-list> 

Meine Controller-Datei:

.controller('vehicleInformationCtrl', function($scope, $http) { // TIP: Access Route Parameters for your page via $stateParams.parameterName 
// var _this = this; 
$http.get('http://myurlsample.com/webserve/').then(function(vehicleinfo ) { 
$scope.vehiclerecord = vehicleinfo.data; 
console.log(vehicleinfo); 
alert(JSON.stringify(vehicleinfo)); 
}).catch(function(vehicleinfo) 
{ 
console.log(vehicleinfo); 
}); 
}) 

meine Route.js Datei enthält:

.state('tabsController.vehicleInformation', { 
    url: '/vehicleinfo', 
    views: { 
     'tab4': { 
     templateUrl: 'templates/vehicleInformation.html', 
     controller: 'vehicleInformationCtrl' 
     } 
    } 
    }) 

Über Jsonview ein Datensatz wie folgt aussehen;

[ 
[ 
[ 
{ 
vehicleid: "8", 
platenumber: "TRG0122", 
make: "Nissan", 
model: "LoadMaster II", 
capacity: "7", 
fuelcap: "120", 
wheelnumber: "10", 
vehiclecode: "TRK0004" 
} 
] 
] 
] 

Antwort

0

Wenn ich Ihre JSONView Ausgang richtig liest, sieht es aus wie es eine Menge Verschachtelung vor sich geht: [[[{model: "LoadMaster II", ...}]]]

Der ng-wiederholen Sie es haben wird nur funktionieren, wenn die $ scope.vehiclerecord sieht wie folgt aus:

[{model: "LoadMaster II", ...}, ... ]

Beachten Sie, dass dies einfach ohne verschachtelte Arrays wie Ihr JSONView Ausgang ein Array von Objekten ist.

So ist die Lösung mit vehicleinfo.data aus der HTTP-Antwort zu spielen, bis Sie nur ein Array von Objekten haben. Basierend auf dem JSONView Sie dort haben, würde diese Arbeit: