【问题标题】:Angular.js view doesn't update on $http XHR resultsAngular.js 视图不会在 $http XHR 结果上更新
【发布时间】:2013-06-30 10:44:49
【问题描述】:

我正在尝试使用 Angular 和 RESTful Web 服务构建搜索功能。我是 Angular 的新手,所以请耐心等待。

我有事件处理和与网络服务的通信连接和工作。问题是当我将搜索查询的结果分配给 $http 成功回调中的 $scope 时,我的视图永远不会更新。

但是,我确实在 $http 回调中取回了数据,如果我尝试在此回调中使用静态数据更新我的模型,这也不会显示。

无论我将结果记录推送到错误的$scope 还是发生了什么,我都完全不知所措。 $scope.$apply() 不起作用,因为模型更新已在进行中。我也尝试了不同版本的 Angular,但无济于事。使用 $resource 而不是 $http 并没有解决问题。

有人有想法吗?提前致谢

我还设置了一个JSFiddle,在控制器中进行了更多诊断

我的 HTML:

{{result.board}}
{{result.posts}}

我的控制器:

myApp.controller('SearchCtrl', function ($scope, $http) {
    $scope.results = [];
    $scope.doSearch = function () {
        data = 'json=' + encodeURIComponent(angular.toJson([{
            board: "one", posts: 435
        }, {
            board: "two", posts: 123
        }]));
        $http.post('/echo/json/', data, {
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
            }
        }).success(function (data) {
            for (var i in data) {
               $scope.results.push(data[i]);
            }
        });
    };
})

【问题讨论】:

    标签: javascript angularjs xmlhttprequest


    【解决方案1】:

    您正在创建控制器的两个实例。表单和列表必须在同一个 <div ng-controller="SearchCtrl"> 元素内。 <form> 不应该有自己的SearchCtrl

    在此处查看已修复的问题:http://jsfiddle.net/EeUrY/68/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      相关资源
      最近更新 更多