我创建了这个http服务:
(function () {
"use strict";
angular.module("inspectionReview").factory("inspectionReviewServices", ["$http", "config", inspectionReviewServices]);
function inspectionReviewServices($http, config) {
var serviceAddress = config.baseUrl + "api/InspectionReview/";
var service = {
getValues: getValues
};
return service;
function getValues(objectId, frequencyId) {
return $http.get(serviceAddress + "getValuesByObjectTypeId/" + objectId + "/" + frequencyId);
}
}
})();
在这里,我在控制器中使用它来获取数据:
function checkInspection() {
var frequencyId = 5;
inspectionReviewServices.getValues($scope.object.Id, frequencyId).then(function (result) {
$scope.someData = result.data;
});
}
当我调用函数checkInspection
时,我需要等到$ scope.someData属性由数据填充,并且只有在数据填充之后才能执行更多的行。当前我得到了承诺并且代码被进一步执行。
编辑(根据达伦的回答):
我更改了调用服务的服务和功能:
function getValues2(objectId, frequencyId) {
return $http.get(serviceAddress + "getValuesByObjectTypeId/" + objectId + "/" + frequencyId).then(function (result) {
return result.data;
});
}
这是在控制器中调用服务的函数:
function checkInspectionReviewValidety() {
var frequencyId = 5;
return inspectionReviewServices.getValues2($scope.object.Id, frequencyId)
}
但我仍然没有得到理想的结果。
如何更改checkInspection函数以使其等待$ scope.someData属性由数据填充?