如何在失败的请求上绑定angularjs?

时间:2015-09-01 08:25:24

标签: javascript angularjs angularjs-scope

我有一个应用程序,它将angularjs与app-manifest和本地存储结合使用。

以下是我的控制器的代码:

var ErrandListController = function ($scope, $http)
{
    $scope.url = 'Errands/GetErrandList';
    $scope.content = [];

    $scope.fetchContent = function ()
    {
        $http.get($scope.url).then(function (result)
        {
            $scope.content = result.data;
            localStorage.setItem("ErrandList", JSON.stringify(result.data));
        }).catch(function (response)
        {
            $scope.content = localStorage["ErrandList"];
        });
    }

    $scope.fetchContent();
}

当我向服务器发出请求并且服务器不可用时,我显然没有得到响应,angularjs执行catch-callback,从而从本地存储中获取差事列表并将其放入范围。

这很好用,但问题是angularjs似乎在请求失败后立即停止数据绑定。

是否有可能在catch-callback中强制数据绑定或设置一个配置标志,告诉angularjs在请求失败的情况下继续数据绑定? 或者我的问题还有其他解决办法吗?

2 个答案:

答案 0 :(得分:0)

问题是我在将对象放入本地存储之前对其进行了字符串化,而在再次检索它时没有解析它。 我最初没有找到它的原因是我试图访问范围内不存在的成员,而AngularJS报告错误。

故事的寓意是,在假设数据绑定出现问题之前,您应该始终检查范围内的内容。

答案 1 :(得分:-1)

如果我理解正确

 $http.get($scope.url).then(function (result){}, function (error) {})