2016-04-06 7 views
1

Ich mache eine Anfrage mit AngularJs in Ionic mit einer Seife-Methode, meine Antwort ist in XML. Nach Anfrage habe ich einen Fehler in der Konsole; Bitte helfen Sie mir Ich weiß nicht viel über AngularJs und Ionic.erhalten XML Antwort mit Seife Anfrage in Winkel js ionic

<WSTransferOfListOfWSListItem> 
    <Message/> 
    <Success>true</Success> 
    <ProcessTime>748.8048</ProcessTime> 
    <ReturnObject> 
     <WSListItem> 
     <Selected>false</Selected> 
     <Text>A KWIK FUEL</Text> 
     <Value>KWIKFUEL</Value> 
     </WSListItem> 
     <WSListItem> 
     <Selected>false</Selected> 
     <Text>WILSON FARMS</Text> 
     <Value>WILSON</Value> 
     </WSListItem> 
    </ReturnObject> 
    <ResponseStatus> 
     <Success>false</Success> 
     <ProcessTime>0</ProcessTime> 
     <MessageType>Warning</MessageType> 
    </ResponseStatus> 
    </WSTransferOfListOfWSListItem> 

Ich erhalte, dass Konsole Ergebnis [object Object] ist, wie dieses Problem zu lösen? Dies ist mein Code:

.controller('LoginCtrl', function($scope, $soap) { 
$scope.user= {}; 
$scope.login = function() { 
    if (typeof $scope.user.username == "undefined") { 
    alert("Please enter username"); 
    } else if (typeof $scope.user.password == "undefined") { 
    alert("Please enter password"); 
    } else { 
     $soap.post("http://abc.asmx","AccountList", 
     {UserName: $scope.user.username, Password: $scope.user.password, DeviceId: "E3-2A-6A-42-6D-C9-26-4F-10-A9-2C-3E-58-7D-00-2E-89-23-99-DD"}) 
     .then(function(response) 
     { 
      $scope.response = response.data; 
      console.log(response); 
     }); 
    } 
}; 
}) 

Danke

Antwort

0
Finally, I have done this using $http request and save response in local directory then call this local file(js/AccountList.xml).I have converted XML to JSON using xml2json.js. 
.controller('LoginCtrl', function($scope, $http) { 

$scope.user= {}; 
$scope.login = function() { 
    if (typeof $scope.user.username == "undefined") { 
    alert("Please enter username"); 
    } else if (typeof $scope.user.password == "undefined") { 
    alert("Please enter password"); 
    } else { 
     $http.post("js/AccountList.xml","AccountList", 
       {UserName: $scope.user.username, Password: $scope.user.password, DeviceId: "E3-2A-6A-42-6D-C9-26-4F-10-A9-2C-3E-58-7D-00-2E-89-23-99-DD"}) 
      .then(function(response) 
      { 
       var x2js = new X2JS(); 
       var aftCnv = x2js.xml_str2json(response.data); 
       var jsonResult = JSON.stringify(aftCnv.WSTransferOfListOfWSListItem.ReturnObject); 
       console.log("========jsonResult========" + jsonResult); 
     }); 
    } 
}; 
}) 
0

Die $ Seife Service wird die XML vom Server in ein JavaScript-Objekt zurückgegeben deserialisieren. Deshalb sehen Sie Object Object in der Konsole. Versuchen Sie, das Objekt zu untersuchen, indem Sie es in der Konsole erweitern oder einen Haltepunkt in der Funktion then festlegen.

+0

Sie, dass aus brauchen wirst Figur, wenn Sie Ihre Anwendung testen und zu debuggen können, wollen. Versuchen Sie, es in einem normalen Browser mit ionic serve auszuführen, das ist am einfachsten zu debuggen. Alternativ können Sie für Android folgende Anweisungen befolgen: https://developer.chrome.com/devtools/docs/remote-debugging. Für iOS, siehe diese Frage: http://StackOverflow.com/questions/25689270/debug-ionic-app-on-ios. – fikkatra

+0

Wenn ich console.log (response.ReturnObject.WSListItem.Text) bin, dann bekomme ich nur den letzten Datensatz. Wie bekomme ich alle Datensätze? –

+0

Es scheint, dass $ soap nicht erkennt, dass ReturnObject ein Array von Listenelementen ist. Könnte etwas mit diesem Problem zu tun haben: https://github.com/andrewmcgivery/angular-soap/issues/23 – fikkatra

0

tun, um dieses .. console.log (JSON.stringify (Antwort))