检测AngularJS承诺已解决但已清空

时间:2014-02-08 18:23:32

标签: javascript angularjs

当我进行服务调用时,它会返回一个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异常的好用。

我目前的工作是检查数据中的某些字段是否未定义。

0 个答案:

没有答案