2016-08-24 10 views
0

Я пытаюсь проверить теги, добавленные путем вызова серверной api. Ниже приведен код.Как проверить ng-теги-ввод с обещанием?

<tags-input ng-model="user.trucks" 
      add-on-space="true" 
      on-tag-adding="checkTruck($tag)"> 
</tags-input> 

и в контроллере я написал,

$scope.checkTruck = function(tag){ 
    var x = $q.defer(); 

    someService.checkTruck(tag).then(function(response){ 
     x.resolve(true); 
    }, function(response){ 
     x.reject(false); 
    }); 

    return x.promise; 
}; 

Хотя документация говорит, что по-теге, добавив, можно взять обещание и подтвердить добавленный тег, он не работает таким образом. Я что-то упускаю ??

+0

* «Это не работает так» * - что именно происходит? – dfsq

ответ

1

Вы знаете, что вам нужно вернуть значения из ваших обработчиков resolve и reject!?

$scope.checkTruck = function(tag){ 
    var deferred = $q.defer(); 

    someService.checkTruck(tag).then(function(response){ 
     return deferred.resolve(true); 
    }, function(response){ 
     return deferred.reject(false); 
    }); 

    return x.promise; 
}; 

Мы можем затем удалить the explicit promise construction вы сделали там и вернуться разрешенным или отвергнутое обещание, что будет держать вас булева без отложенного объекта.

$scope.checkTruck = function(tag){ 
    return someService.checkTruck(tag).then(function(response){ 
     return $q.when(true); 
    }, function(response){ 
     return $q.reject(false); 
    }); 
}; 

Вот как я делаю проверки

отсылают $q docs больше о .when.

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

  • Нет связанных вопросов^_^