2016-09-05 9 views
0

に約束値を返す:https://github.com/marceljuenemann/angular-drag-and-drop-lists私は角のドラッグを使用して、モジュールをドロップしているイベントのコールバック

私はこのイベントに興味

DNDドロップ要素呼び出されオプション式が一覧には が記載されています。

戻り値は、液滴のさらなる処理を決定する:

偽降下がキャンセルされ、要素が挿入されません。

trueドロップが許可されているが、dnd-dropコールバック が要素の挿入を処理することを通知します。

このイベントの内部では、私はアイテムを落とすことができるかどうかを私のRESTサーバーに要求し、その応答に基づいて真または偽を返したいとします。したがって、コードは次のようになります。

function dropCallback(){ 
    var value; 
    $http.post('url', data) 
     .then(function success(){ 
      value = true; 
     }, function error(){ 
      value = false; 
     }); 
    return value; 
} 

戻り値は、サーバーからの応答を取得した後に実行されるため、戻り値は未定義です。 この目標を達成するためにコードをどのようにリファクタリングする必要がありますか?

+0

このプロジェクトに関するこの[#168](https://github.com/marceljuenemann/angular-drag-and-drop-lists/issues/168)の問題と[#173 ](https://github.com/marceljuenemann/angular-drag-and-drop-lists/issues/173) – Jack

答えて

0

イベントのドキュメントで約束がコールバックの戻り値として受け入れられることについて何も述べていないので、答えはです。にはできません。

リクエストは実行スタックの最後に追加されます(したがって、現在のすべてのジョブが完了した後に実行されます)。コールバックの実行を中断しません。そのため、コールバックの実行はコードの終わりに達し、リクエストレスポンスハンドラはコールバックの戻り値に影響しません。

関連する問題