[英]How do I make restangular promise sequential?
我正在尝试通过Restangular,Angular-ui-utils进行带有后端验证的表单,但是我无法弄清楚如何在继续使用该函数之前强制Restangular的诺言完成,因此我的程序不断返回空值。
这是我的代码
HTML:
...
<form> <input name="name"
ng-model="name"
ui-validate="{uniqueName: 'uniqueName($value)'}">
Is name duplicated? {{form.name.$error.uniqueName}}</input>
</form>
...
Javascript:
...
function myCtrl($scope,Restangular) {
...
$scope.uniqueName(value) {
var checkResult;
Restangular.one('service').one('validate',value).get().then(function(result){
checkResult = result;
}
return checkResult;
}
...
}
Rest Serice的输出确实很简单,如果名称不在数据库中,则为“ false”,否则为“ true”。
由于验证唯一名称的调用是异步的。 您不能通过返回checkResult
来实现。
ui-validate我认为对诺言的支持。 所以你返回类似
$scope.uniqueName(value) {
return Restangular.one('service').one('validate',value).get();
}
我相信这应该是一个承诺。 如果您使用的是ui-validate
正确版本,则应该可以使用。 检查此提交https://github.com/angular-ui/angular-ui/issues/257 ,它会在api中添加对promise的支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.