$ http.error承诺似乎没有在angularjs中触发

时间:2016-03-03 17:11:46

标签: angularjs

我正在关注Adam Freeman撰写的Pro AngularJS书中的sportsStore示例,并且似乎陷入了第7章的代码示例中。

Adam使用来自下面列出的控制器的主app.html中的data.error属性,我通过提供无效的url强制出错,但我认为$ scope.data.error属性不会被填充:

angular.module("sportsStore")
.constant("dataUrl", "http://localhost:5500/xxx")
.controller("sportsStoreCtrl", function($scope, $http, dataUrl){

$scope.data = {};
    $http.get(dataUrl)
        .success(function(data){
           $scope.data.products = data; 
        })
        .error(function(error){
            $scope.data.error = error;
        });
});

在app.html中,data.error字段用作布尔值

<div class="alert alert-danger" ng-show="data.error">
    Error ({{data.error.status}}). The product data was not loaded.
    <a href="/app.html" class="alert-link">Click here to try again</a>
</div>

但是,data.error字段不会填充任何内容。用'true'替换'data.error'可以得到正确的结果。

Batarang没有显示这样的错误属性。

enter image description here

1 个答案:

答案 0 :(得分:2)

是的,它与Angular版本有关。捆绑的源代码使用v1.2 ...您可以假设它与本书中的代码一起使用,但是当我指向最新版本的CDN时,代码按预期工作。