Javascript 如何限制angularjs中的异步调用?
这是我的密码Javascript 如何限制angularjs中的异步调用?,javascript,angularjs,Javascript,Angularjs,这是我的密码 .state('appSetting',{abstract:true,url:'/appSetting/:appId',templateUrl:appUrl+'/appSetting/Index',controller:'AppSettingCtrl'}) .state('appSetting.majorObject列表',{url:'/majorObject',templateUrl:appUrl+'/majorObject/List',控制器:'majorObject SCT
.state('appSetting',{abstract:true,url:'/appSetting/:appId',templateUrl:appUrl+'/appSetting/Index',controller:'AppSettingCtrl'})
.state('appSetting.majorObject列表',{url:'/majorObject',templateUrl:appUrl+'/majorObject/List',控制器:'majorObject SCTRL'})
主要目标SCTRL=[
“$scope”、“$state”、“uiGridConstants”、“$stateParams”、“$rootScope”、“dataFactory”、“cacheKeys”、“$window”、“ngDialog”、“$filter”、函数($scope、$state、uiGridConstants、$stateParams、$rootScope、dataFactory、cacheKeys、$window、ngDialog、$filter){
“严格使用”;
$scope.loadMajorObjects=函数(){
$scope.getData();
$scope.objectsList.data=$scope.filterData;
};
}];
AppSettingCtrl=[
“$scope”、“$state”、“$stateparms”、“$window”、“$sessionStorage”、“dataFactory”、“ngDialog”、“$q”、函数($scope、$state、$stateparms、$window、$sessionStorage、dataFactory、ngDialog、$q){
“严格使用”;
$scope.getData=函数(){
var appId=$scope.currentAppId;
变量类型=$scope.majorObject.type;
如果(u.isEmpty(appId)){
返回;
}
var deferred=$q.deferred();
//var cacheKey={key:cacheKeys.objectTypeList($scope.asCacheOptions({ObjectType:type}))};
dataFactory.get(“/MajorObject/All?applicationId=“+$scope.currentAppId+”&type=“+type”)
.然后(函数(结果){
$scope.selectAppSetting(“主要对象”);
$scope.filterData=result.data.data;
deferred.resolve($scope.filterData);
});
回报。承诺;
};
}];代码>
@渲染页面(“\u TopNavBar.cshtml”)
搜寻
您应该从getData
返回承诺。然后在loadMajorObjects
中,您可以使用链接它。然后使用$scope.filterData
$scope.getData = function () {
var appId = $scope.currentAppId;
var type = $scope.majorObject.type;
if (_.isEmpty(appId)) {
return $q.when();
}
// var cacheKey = { key: cacheKeys.objectTypeList($scope.asCacheOptions({ ObjectType: type })) };
dataFactory.get("/MajorObject/All?applicationId=" + $scope.currentAppId + "&type=" + type)
.then(function (result) {
$scope.selectAppSetting('Major Objects');
return result.data.data;
});
};
下面是对getData
的改进
$scope.getData = function () {
var appId = $scope.currentAppId;
var type = $scope.majorObject.type;
if (_.isEmpty(appId)) {
return $q.when();
}
// var cacheKey = { key: cacheKeys.objectTypeList($scope.asCacheOptions({ ObjectType: type })) };
dataFactory.get("/MajorObject/All?applicationId=" + $scope.currentAppId + "&type=" + type)
.then(function (result) {
$scope.selectAppSetting('Major Objects');
return result.data.data;
});
};
和loadMajorObjects
:
$scope.loadMajorObjects = function () {
$scope.getData().then(function(filterData) {
$scope.objectsList.data = filterData;
});
};