2016-07-19 173 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呼叫获得运动名称...这里只有我可以使用过滤器或函数调用 –

+0

您可以嵌套$ http调用。 –