Angularjs Angular JS-在返回数据之前阻止调用$http.get的方法
我知道AngularJS强迫您在任何地方都是异步的,但我遇到了拖放验证的问题:Angularjs Angular JS-在返回数据之前阻止调用$http.get的方法,angularjs,validation,drag-and-drop,typescript,Angularjs,Validation,Drag And Drop,Typescript,我知道AngularJS强迫您在任何地方都是异步的,但我遇到了拖放验证的问题: 需要$scope方法返回布尔值 该布尔值是调用REST端点(ASP.NET WebAPI)的结果 我使用的拖放实现是 简而言之,当用户开始拖动项目时,将调用一个方法来验证拖动是否有效 在这个验证方法中,我需要调用一个REST端点,该端点将执行一些逻辑,以确定可以将哪些拖动源拖放到拖动目标上 $http.get是异步的,这使我无法返回get的结果 在我看来,我将拖放配置为: <table class="gri
- 需要$scope方法返回布尔值李>
- 该布尔值是调用REST端点(ASP.NET WebAPI)的结果
<table class="grid" style="margin-left: 15px" ui-on-drop="onDrop($event,$data,someId)" drop-validate="validateDrop($data, someId)">
<!-- rows in here -->
</table>
我考虑过的事情:
- 可以有大量可拖动的项目,这些项目可以有多个放置目标。我认为加载“验证矩阵”是不可行的
- 我理解阻止不是已经做过的事情,但这可能是一个有效的案例
- 重新构造验证,使其能够支持异步调用(对此不确定,我希望避免修改拖放库)
- 强制get同步,或者以某种方式阻塞,直到知道结果
$scope.validateDrop = (data, someId) => {
var res = $http.get('/some/url/that/returns/bool');
//
// how to return the result of the GET, and NOT a promise?
//
return true; //should return value of the GET
};