当我进行服务调用时,它会返回一个promise。成功函数最终填充数据。但如果没有数据,我该如何检测?
GuideControllers.controller('SettingsCtrl',[ '$scope', "Settings",
function ($scope, Settings) {
// gets data to fill in the modal sidebar
// when the modal "submit" is hit, the underlying page is redisplayed
var bp = 0;
$scope.settings = Settings.get({ namespace: 'api', resource: 'settings', userId: 'current'}, function(data){
$scope.genreFilters = data.genreFilters;
$scope.releaseDateFilter = data.releaseDateFilter;
$scope.ratingRangeFilter = data.ratingRangeFilter;
$scope.sortBy = data.sortBy;
for( var i = 0; i < $scope.sortBy.length; i++ ){
if($scope.sortBy[i].selected === "selected"){
$scope.selectedOrder = $scope.sortBy[i];
}
}
})
}
]);
返回数据时,由于响应为空,所有字段都未定义。这不是错误,我只想在引用未定义数据之前检查。数据不是一个集合,所以我无法检查它的大小。数据本身并不是未定义的,因为它是一个承诺并被标记为已解决。
我可以捕获引用未定义的异常,但这并不是IMO异常的好用。
我目前的工作是检查数据中的某些字段是否未定义。