2016-08-24 1 views
0

サーバー側のAPIを呼び出して追加されたタグを検証しようとしています。以下はコードです。約束でng-tags-inputを検証する方法は?

<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

あなたはresolverejectハンドラから値を返す必要があることを知っていますか?

$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); 
    }); 
}; 

.when詳細について$q docsを参照してください。

関連する問題