div 在 ng-repeat 中没有更新?
div in ng-repeat is not getting updated?
我正在从 http get 请求获得响应,我正在使用该响应在数据中进行迭代
<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
get 请求的响应
{
"Id": "44442232",
"profiles": [
{
"type": "Friend",
"username": "Username 1",
},
{
"type": "Student ",
"username": "Username 2",
}
]
}
我对 test2.json
的 get 请求的响应
{
"Id": "44442232",
"profiles": [
{
"type": "Friend",
"username": "Username 4",
},
{
"type": "Student ",
"username": "Username 5"
}
]
}
我在更新 array.The 数组后尝试了 console.log
,但是 ng-repeat
中的 div 没有更新?
首先,我认为您不需要 $scope.$apply() 来触发摘要循环。您处于 angular 上下文中。
其次,您在调用 .then() 时缺少一个 ')'。您目前有 '.then(function(){};'
第三,如果 属性 是对象中的最后一个,则您的响应对象不应在用户名 属性 后有逗号。
你也有一个静默失败,或者它是控制台中的一个错误,并且为 ng-repeat 处理的 html 是空白的,或者你得到 angular 插值语法 {{ profile.username}}?
请在末尾添加“)”以关闭您的 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 代码并检查。一旦修复,请告诉我。编码愉快:)
我正在从 http get 请求获得响应,我正在使用该响应在数据中进行迭代
<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
get 请求的响应{
"Id": "44442232",
"profiles": [
{
"type": "Friend",
"username": "Username 1",
},
{
"type": "Student ",
"username": "Username 2",
}
]
}
我对 test2.json
的 get 请求的响应{
"Id": "44442232",
"profiles": [
{
"type": "Friend",
"username": "Username 4",
},
{
"type": "Student ",
"username": "Username 5"
}
]
}
我在更新 array.The 数组后尝试了 console.log
,但是 ng-repeat
中的 div 没有更新?
首先,我认为您不需要 $scope.$apply() 来触发摘要循环。您处于 angular 上下文中。
其次,您在调用 .then() 时缺少一个 ')'。您目前有 '.then(function(){};'
第三,如果 属性 是对象中的最后一个,则您的响应对象不应在用户名 属性 后有逗号。
你也有一个静默失败,或者它是控制台中的一个错误,并且为 ng-repeat 处理的 html 是空白的,或者你得到 angular 插值语法 {{ profile.username}}?
请在末尾添加“)”以关闭您的 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 代码并检查。一旦修复,请告诉我。编码愉快:)