簡體   English   中英

我如何使矩形承諾連續出現?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM