Angularjs' ng-repeat'无法识别数据' HTTP响应数组

时间:2018-04-18 18:23:32

标签: angularjs angularjs-ng-repeat httpresponse

我正在使用Angularjs和Spring启动创建一个小应用程序。我想使用Angularjs ng-repeat指令显示数据列表。

我的期望:

enter image description here

但实际结果如下:

enter image description here

当我运行代码时,虽然HTTP响应'数据'但是我们不会显示应该使用ng-repeat显示的数据。被分配到'图像'数组,有没有人能弄清楚这种行为的原因?

HTML代码(ng-repeat)

 <p>Array : {{images}}</p>
 <h3 ng-repeat="x in images">{{x}}</h3>

Angularjs代码将数据设置为图像数组

$http.get(url, data, config).then(function (response) {
                if (response != null) {
                    $scope.images = response.data;
                } else {
                }
            }, function (response) {
            });

Http回复

config: {method: "GET", transformRequest: Array(1), transformResponse: Array(1), paramSerializer: ƒ, publisher: "test", …}
data: (5) ["Data 1", "Data 2", "Data 3", "Data 4", "Data 5"]
headers: ƒ (d)
status: 200
statusText: "OK"
__proto__: Object

3 个答案:

答案 0 :(得分:0)

您的代码可能没有运行摘要周期。尝试将$scope.images = response.data;投入$timeout,这将导致摘要周期运行。

$timeout(function() {
  $scope.images = response.data;
}, 0)

答案 1 :(得分:0)

var a = ['Data1','Data2','Data3'];
$scope.images = JSON.stringify(a);//"[\"Data1\",\"Data2\",\"Data3\"]"

你应该检查数据是否是一个JSON字符串,并使用JSON.parse()将其转换为数组。因为有角度的&#39; ng-repeat&#39;接受JSON格式

var myJSON = JSON.parse(JSONStr);

enter image description here

答案 2 :(得分:0)

$http.get(url, data, config).then(function(response) {
    if (response != null) {
        $scope.$apply(function() {
            $scope.images = response.data;
        });
    } else {}
}, function(response) {

});