2016-05-26 7 views
0

definiert, wenn ich die ID an API senden. Ich habe die Antwort in Objekt und besteht aus Artikelpreis-Array. aber object.itemprice.length ist undefiniert. und Gegenstand der itemprice undefinedObjekt der array.length ist nicht in angularjs

//Controller: 

ZustShopController.controller("ProductController",function($rootScope,$scope,DecreaseQuantitytService){ 
$scope.itemslist=DecreaseQuantitytService.DecreseQuantiyItem(item) 
}) 

//Service: 

ZustShopService.service("DecreaseQuantitytService",function(DecreaseQuantitytFactory){ 
    this.DecreseQuantiyItem=function(item){ 
    return DecreaseQuantitytFactory.DecreseAllQuantiyItem(item) 
} 
}); 

//Factory: 

ZustShopFactory.factory("DecreaseQuantitytFactory",function($resource,RES_URL){ 

var iteminfo; 
var itemresource=$resource(RES_URL+"product/:id/:itemcode",{"itemcode":"@itemcode"},{update:{method:"PUT"}}) 

return{ 
DecreseAllQuantiyItem:function(item){ 
    iteminfo=itemresource.get({"itemcode": item.itemcode,"id":item.prevsubid}); 
     return iteminfo; 
} 

}) 

Json Antwort

Resource {$promise: Promise, $resolved: false} 
$promise:Promise 
$resolved:true 
__v:3 
_id:"573f087078e73e28186a2fb7" 
createdAt:"2016-05-20T12:52:00.897Z" 
defaultmainprice:180 
defaultofferprice:160 
isDeleted:false 
itemcode:"1000" 
itemdescription:"Sun flower 1lit" 
itemname:"Sun flower 1lit" 
itemprice:Array[2] 
modifiedAt:"2016-05-20T12:52:00.898Z" 
status:false 
subcatid:"5736aea0d3f55f3c155999a8" 
unit:"1 lit" 

$scope.itemslist.itemprice.length undefiniert

bitte helfen Sie mir, wie zu tun, um diese

+0

können Sie bitte den Code teilen, wo Sie versuchen, '$ scope.itemslist.itemprice.length' .. – seekers01

Antwort

1

Das Problem ist, dass Ihr Antrag nicht auf die aufgelöste Moment, wenn Sie es überprüfen. Sie müssen den Promise-Callback verwenden, um geladene Daten einer Bereichsvariablen zuzuordnen.

ZustShopController.controller("ProductController",function($rootScope,$scope,DecreaseQuantitytService){ 
    DecreaseQuantitytService.DecreseQuantiyItem(item).then(function(data){ 
    $scope.itemslist = data; 
    } 
}) 

Mehr zu den Versprechungen in $http service in Winkel- und here.

+0

zu verwenden, aber ich bin $ Ressource. – SrinivasAppQube

+0

und so? Ein AJAX-Aufruf ist asynchron, egal, in was er eingepackt ist, er benötigt einen Callback-Wrapper auf einem Dienst oder Controller der Ebene - was ich in Ihrem Codebeispiel nicht sehen kann – shershen

+0

ok, ich habe es verstanden. Danke für Ihre Hilfe. – SrinivasAppQube