我正在尝试通过调用服务器端api来验证添加的标签。以下是代码。
<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;
};虽然文档上说,在标签上添加可以接受承诺并验证添加的标签,但它并不是这样工作的。我是不是错过了什么?
发布于 2016-08-25 04:06:51
您一定知道需要从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,并返回一个已解析或已拒绝的promise,该promise将保留您的布尔值,而不包含延迟对象。
$scope.checkTruck = function(tag){
return someService.checkTruck(tag).then(function(response){
return $q.when(true);
}, function(response){
return $q.reject(false);
});
};这就是我做验证的方式
有关.when的更多信息,请参阅$q docs。
https://stackoverflow.com/questions/39116489
复制相似问题