我想展示我的数组中的所有内容,但它只显示最新的循环。以下是我的控制器功能:
/*global angular*/
var app = angular.module('statisticsApp', []).controller('myCtrl',
function ($scope, $http) {
"use strict";
return $http({
method : "POST",
url : "GatewayAPI.php",
}).then(function mySuccess(response) {
$scope.records = response.data;
var mydata,myJSON,myresult,myjava, myobj;
var i;
var Result;
var chartResultTemp = [];
var resultType = [];
for(i=0; i<72;i++)
{
//storing data
mydata = $scope.records.data[i];
//retrieving data
Result = mydata.data.substring(6,9); //throw this in
myobj = mydata.data.substring(3,4);
resultType = mydata.data.substring(3, 4);
if(resultType === "A") { //selects type = a
chartResultTemp = mydata.data.substring(6,9);
} ;
$scope.test2=chartResultTemp; //this one
$scope.test3 = resultType;
console.log(Result);
console.log(resultType);
}
$scope.gotTemp = false;
$scope.gotHumidity = false;
$scope.getSoilMoisture = false;
});
});
这是我的php中的代码,我列出了我的数组中的所有项目:
<ul>
<li data-ng-repeat="cd in test2">{{cd}}</li>
</ul>
从控制台日志中可以看到,它只显示最新的循环。我想显示数组中的所有数据。是因为我错误地声明了这个数组。
更新
所以我使用了$scope.test2.push(chartResultTemp)
,它给了我一个错误:无法读取未定义的属性'push'。
然后,我试过
if(resultType === "A") {
chartResultTemp.push([mydata.data.substring(6,9)]);
} ;
答案 0 :(得分:1)
你需要推送到数组
$scope.test2.push(chartResultTemp);
答案 1 :(得分:1)
通过使用(=
),您在每次迭代中为同一范围分配不同的值,最终保留分配给它的最终值。要存储所有值,您必须从每次迭代创建一个数组和push
值。
$scope.test2 = [];
for(let i=0; i<72; i++){
.....
.....
$scope.test2.push(chartResultTemp);
.....
.....