2016-07-19 6 views
1

Я хочу вызов $ http в пользовательских фильтрах, которые возвращают значение, которое оно не работает (Asynch), и не возвращает значение. Я хочу сделать это только фильтрами. Возможно;

Вот мой код:

.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

Я думаю, что вы не должны использовать фильтры таким образом. Фильтры предназначены для преобразования входов на основе дополнительных параметров.

Проблема в том, что вы немедленно возвращаете обещание от функции фильтра. И это ничего, с чем может столкнуться Угловой в результате фильтра.

Мое предложение поэтому было бы это - первый получить результат, работать с фильтром на основе результата:

Как бы бомбардировать ваш сервер совсем немного с запросами всякий раз, когда вы пытаетесь фильтровать данные.

+0

Это правильно. – dfsq

+0

У меня есть более 1000 вложенных записей, на мой взгляд. У каждой записи есть вид спорта. Я хочу получить спортивное имя по признаку спорта от $ http call ... здесь только я могу использовать фильтр или вызов функции –

+0

You может вложить $ http звонки. –

Смежные вопросы