我正在使用Angularjs和Spring启动创建一个小应用程序。我想使用Angularjs ng-repeat指令显示数据列表。
我的期望:
但实际结果如下:
当我运行代码时,虽然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
答案 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);
答案 2 :(得分:0)
$http.get(url, data, config).then(function(response) {
if (response != null) {
$scope.$apply(function() {
$scope.images = response.data;
});
} else {}
}, function(response) {
});