我有一个角度的HTTP请求,它从Mysql表中提取所有数据。
$http({
method: "POST",
url: "framework/actions/league.php?query=getDivision"
}).success(function(data){
$scope.division = data;
});数据片段如下所示:
[
{
name: "Someone",
number: "4",
game1: "6",
game2: "2",
score: "8"
},
{
name: "Someone else",
number: "7",
game1: "7",
game2: "3",
score: "10"
},
]当该数据从HTTP请求返回并分配给$scope.division时,数字将被视为字符串,这给我在ngRepeat中使用orderBy时带来了问题。
如何使数字字段被视为数字,而不必声明forEach中的每个字段并使用parseInt()?在PHP中可以这样做吗?如果不是,在角javascript中这样做就可以了。
当然,由于name字段的存在,我不能将每个字段作为一个数字来处理。
发布于 2014-10-17 12:52:17
在发送结果之前,可以使用intval()函数将字符串转换为数字:
$string = '123';
$number = intval($string);
// 123
$number2 = intval('456');
// 456或者直接在赋值语句上转换变量:
$string = '123';
$number = (int)$string;
// 123
$number2 = (int)'456';
// 456或在AngularJS中使用transformResponse方法执行该操作:
$http({
method: "POST",
url: "framework/actions/league.php?query=getDivision",
transformResponse: function(data) {
for (var i=0; i<data.length; i++) {
for(var k in data[i]) {
if (data[i].hasOwnProperty(k)) {
data[i][k] = isNaN(+data[i][k]) ? data[i][k] : +data[i][k];
}
}
}
return data;
},
success: function(data){
$scope.division = data;
}
});https://stackoverflow.com/questions/26425308
复制相似问题