不能检索Angularjs $scope数组的最后一个对象
Can't retrieve Angularjs $scope array last object
我在angularjs中有一个$scope中的object数组。我成功地将对象推入数组。它显示数组的形式在控制台,但我不能检索数组的最后一个对象,如javascript中的普通数组。以下是我的代码:
$scope.messages = [];
$http.get("http://localhost/php/retrieve_message.php").success(function (data)
{
for (i = 0; i < data.length; i++)
{
$scope.messages.push(data[i]);
console.log("success");
}
}).error(function ()
{
console.log("error");
});
console.log([$scope.messages); console.log($scope.messages[$scope.messages.length - 1]);
正确。
$scope.messages = [];
$http.get("http://localhost/php/retrieve_message.php").success(function(data) {
for (i = 0; i < data.length; i++) {
$scope.messages.push(data[i]);
console.log("success");
}
console.log($scope.messages);
console.log($scope.messages[$scope.messages.length - 1]);
}).error(function() {
console.log("error");
});
您正在制作Asynchronous request
。
在这种情况下,当数据被接收时,你会收到一个回调,当你发出请求时,哪个选项可以让浏览器继续正常工作正在处理
$scope.messages = [];
$http.get("http://localhost/php/retrieve_message.php").success(function(data){
for(i=0; i<data.length; i++){
$scope.messages.push(data[i]);
console.log("success");
}
// put your code in success method
console.log($scope.messages);
console.log($scope.messages[$scope.messages.length - 1]);
}).error(function() {
console.log("error");
});
在您的示例中,您正在访问列表before the data has been received
。所以$scope的长度。消息是0
,您正在尝试获取$scope.messages[-1]
您可以了解更多关于同步和异步请求的信息
$scope.messages = [];
$http.get("http://localhost/php/retrieve_message.php").success(function(data){
// this callback function gets executed only after server returns a successful response. So, here you have access to data you have got from the server.
for(i=0; i<data.length; i++){
$scope.messages.push(data[i]);
console.log("success");
}
console.log([$scope.messages);
console.log($scope.messages[$scope.messages.length - 1]);
}).error(function() {
console.log("error");
});
// Following code executes before even server returns data.
//console.log([$scope.messages);
//console.log($scope.messages[$scope.messages.length - 1]);
尝试将for循环更新为:
for(var x in data){
$scope.messages.push(x);
console.log("success");
}
相关文章:
- Parse.com在循环中保存对象,只保存最后一个对象
- 如何在Javascript中的对象数组的最后一个对象之后附加几个新对象
- Javascript事件处理程序总是被添加到数组中的最后一个对象
- Javascript - 循环访问对象数组,仅显示最后一个对象
- JS将对象推送到变量,将最后一个对象添加到所有元素中
- 主干集合视图仅渲染集合中的最后一个对象
- JSON 从最后一个对象中删除尾随逗号
- for 循环仅显示数组中的最后一个对象
- 更有效的方法来删除第一个和最后一个对象
- 检索localStorage的最后一个对象中的值
- 为什么onclick只被分配给最后一个对象?
- 使用jquery迭代数组只返回最后一个对象
- jQuery -删除最后一个对象的关键
- 不能检索Angularjs $scope数组的最后一个对象
- 如何在字符串对象的两个对象之间添加逗号,而不是最后一个对象
- 从对象数组中删除最后一个对象
- 获取selector中的第一个和最后一个对象
- 检索JSON对象列表中的最后一个对象
- 如何定义第一个和最后一个对象并停止循环
- Javascript指向最后一个对象实例