2016-07-19 23 views
1

値が返されず、値が返されないカスタムフィルタで$ http呼び出しを行いたい場合は、フィルタのみで行うことができます。

.filter('getSportName', ['$http', '$filter','BASE_URL','$rootScope','adapter',function ($http, $filter,BASE_URL,$rootScope,adapter) { 
    return function(id){ 
     var request = { 
     method: 'get', 
     command: 'SportsMasters/'+id, 
     }; 
     adapter.call(request) 
     .then(function (data) { 
     var selectedSport = data; 
      var name=data.sportstitle; 
      return name; 

     }) 
     .catch(function (err) { 
      console.log(">>>>>>>error ",err); 

     }) 

    } 
    }]) 

ありがとう:

は、ここに私のコードです。

答えて

1

私はあなたがそのようにフィルタを使用すべきではないと思います。フィルタは、オプションのパラメータに基づいて入力を変換するためのものです。

ここでの問題は、すぐにフィルタ機能から約束を返すことになります。 Angularはフィルタの結果として扱うことができません。あなたのデータをフィルタリングしようとするたびにあなたが要求してあなたのサーバーはかなり衝撃を与えることだろうと

:結果に基づいてフィルタでは動作し、最初の結果を取得 -

私の提案は、したがって、このことでしょう。

+0

これは正しいです。 – dfsq

+0

私のビューには1000個以上のネストされたレコードがあります。各レコードにはid.iというスポーツIDが$ httpコールのスポーツIDに基づいて取得したいのですが...ここではフィルタまたは関数呼び出しを使用できます –

+0

$ http呼び出しをネストすることができます。 –