2016-09-19 7 views
0

AngularJSを使用してAPIからデータを取得 サービスとコントローラを角で作成します。私はサービスからデータを取得し、それをコントローラから使用します。 重複したKeyを確認するためのデータ入力用の検証機能があります。サービスは、入力されたキーをサーバーに送信することでこれを行います。 [保存]をクリックすると、Controller CallからValidate()関数がValidate()からCheckExistedKey()サービスを呼び出します。 そして私はAngularJS終了時にhttpサービスの結果を取得する

if(validate() == true){ 
    alert(''); //something to do 
} 

そして

var defer = $q.defer(); 
var checkExistedKey = function (key){ 
    return $http.get('http://localhost:2807/api/Event/CheckExistedkey?key=' + key 
     ).then(function (results) { 
      defer.resolve(results.data); 
      return defer.promise(); 
     }); 
} 

以下のようなサービスしかし、警告が検証()関数の前に呼び出され、以下のような行を持っています。 $ q.deferを入れましたが、何も変わりませんでした。 Plsは私を助けます。検証で

答えて

0

また、あなたがコールバック関数を追加する必要があります -

function validate(){ 
    var deferredRequest = checkExistedKey(); 
     deferredRequest.then(function (success) { 
      return true; 
     } 
} 

はこれを参照してください - example

+0

それはまだ動作しません。 validate()の結果は定義されていません –

+0

validate関数コードを共有できますか? – Disha

+0

'function validate(){ var deferRequest = EventService.checkExistedKey($ scope.Event.eventKey); deferRequest.then(function(result){ 返品結果; }); } ' 私は、あなたが私の答えを更新した –

関連する問題