2016-03-21 13 views
0

以下、私はAPIから情報を取得しています。コンソールでは、iteminfoデータを返すときにデータを取得し、サービスに入ることはできません。データは、サービスへのグローバルフォームファクトリとして機能しません

この私の工場コード

factmodule.factory("OrderFactory", function() { 
    var iteminfo; 
    var Iteminforesource = $resource("http://demo.foodzard.in/api/menu"); 
    return { 
     Iteminforesource.get(function(data) { 

      iteminfo = data.message; 
      console.log("this is menu " + iteminfo) 
     }, function(d, s) { 
      console.log("Error*** " + s) 
     }) 
     return iteminfo; 
    } 

}) 

これは私のサービスコードです。コンソールデータで は未定義

servctrl.service("OrderService", function(OrderFactory) { 
    this.getAllInfoItem = function() { 
     return OrderFactory.Iteminforesource(); 
     console.log(OrderFactory.Iteminforesource()); 
    } 
}) 

を示しますが、約promiseオブジェクトhereや角度特定hereを読むことができる私に

答えて

1

をHLEPしてください。

factmodule.factory("OrderFactory", function() { 
    var Iteminforesource = $resource("http://demo.foodzard.in/api/menu"); 
    return { 
     // return promise object 
     iteminfo:function{ 
     return Iteminforesource.get().$promise.then(function(data) { 
      // promise will resolved with data.message 
      return data.message; 
     }); 
    } 
    } 

}) 

servctrl.service("OrderService", function(OrderFactory) { 
    this.getAllInfoItem = function() { 
     // this service also will return promise 
     return OrderFactory.iteminfo(); 
    } 
}) 

// in controllers getAllInfoItem must be used like this 
orderService.getAllInfoItem().then(function(message) { 
    console.log(message); 
}) 
+0

ご回答ありがとうございます。ここに問題があります。エラーorderService.getAllInfoItem()が表示されます。それは関数ではありません。あなたが私のためにこの上にデモを持っているならば、約束どおりに働く方法を教えてください。 – SrinivasAppQube

+0

うん、それは私の間違いだった。私はanwserを更新しました(工場で '$ promise'を追加しました)。 '$ q'の完全な説明はここで見つけることができます:http://www.webdeveasy.com/javascript-promises-and-angularjs-q-service/ –

+0

ありがとうございます。 Bob Spongeそれは私のために働いている – SrinivasAppQube

関連する問題