尝试通过调用服务器端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;
};
虽然文档说明标签添加可以承诺并验证添加的标签,但它并不是那样工作的。我错过了什么吗?
答案 0 :(得分:1)
您确实需要从Raises an error if the Database Engine cannot determine the metadata for the first query that will be executed by performing a static analysis.
和resolve
处理程序返回值?
reject
然后我们可以删除您在那里完成的the explicit promise construction并返回一个已解决或被拒绝的承诺,该承诺将保留您的布尔值而不包含延迟对象。
$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;
};
这就是我的验证方式
有关$scope.checkTruck = function(tag){
return someService.checkTruck(tag).then(function(response){
return $q.when(true);
}, function(response){
return $q.reject(false);
});
};
的更多信息,请参阅$q docs。