我收到来自http get请求的响应,Iam使用响应迭代数据
<div id="container" ng-app="myApp" ng-controller="myctrl">
<div ng-repeat="profile in profiles">
<p>{{profile.username}}</p>
</div>
</div>
这是为了点击
添加一个个人资料<input ng-click="addProfile()" type="button" value="add Profile" />
这是我在控制器中的获取请求
var app = angular.module('myApp', []);
app.controller('myctrl', function($scope, $http) {
$scope.profiles = [];
$http.get("test1.json")
.then(function(response) {
$scope.profiles = response.data.profiles; //Response is provided below
});
$scope.addProfile = function(){
$http.get('test2.json')
.then(function(response) {
alert("af");
$scope.items = response.data.profiles; //Response is provided below
$scope.profiles.push($scope.items);
console.log($scope.profiles); //gives the update Array
});
});
});
我的test1.json请求的响应
{
"Id": "44442232",
"profiles": [
{
"type": "Friend",
"username": "Username 1",
},
{
"type": "Student ",
"username": "Username 2",
}
]
}
我的test2.json请求的响应
{
"Id": "44442232",
"profiles": [
{
"type": "Friend",
"username": "Username 4",
},
{
"type": "Student ",
"username": "Username 5"
}
]
}
我在数组中更新后尝试console.log
。数组已更新,但ng-repeat
中的div未更新?
答案 0 :(得分:2)
请将&#39;)&#39;关闭您的JSON通话请求在末尾。除此之外没有错误,相同的代码对我很好。 //代码在这里
var myApp = angular.module("myApp", []);
myApp.controller("myctrl", function($scope, $http) {
$http.get('test1.json')
.then(function(response) {
$scope.profiles = response.data.profiles; //Response is provided below
});
$scope.addProfile = function(){
$http.get('test2.json')
.then(function(response) {
$scope.items = response.data.profiles; //Response is provided below
angular.forEach($scope.items, function(value) {
$scope.profiles.push(value);
});
console.log($scope.profiles);
});
};
});
请查找此更新的js代码并进行检查。一旦修好,请告诉我。快乐的编码:)
答案 1 :(得分:1)
首先,我认为你不需要 $ scope。$ apply()来触发摘要周期。你处于有条不紊的环境中。
其次,当你打电话给 .then()时,你错过了一个')'。您目前有'。然后(function(){};'
第三,如果该属性是对象中的最后一个属性,则您的响应对象在username属性后面不应该有逗号。
你是否有静默失败,或者是控制台出错,并且ng-repeat的处理过的html是空白的,或者你得到角度插值语法{{profile.username}}?