首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将HTTP请求中的所有变量视为整数(例外)

问将HTTP请求中的所有变量视为整数(例外)
EN

Stack Overflow用户
提问于 2014-10-17 12:44:20
回答 1查看 100关注 0票数 1

我有一个角度的HTTP请求,它从Mysql表中提取所有数据。

代码语言:javascript
复制
$http({
  method: "POST",
  url: "framework/actions/league.php?query=getDivision"
}).success(function(data){
  $scope.division = data;
});

数据片段如下所示:

代码语言:javascript
复制
[
  {
    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字段的存在,我不能将每个字段作为一个数字来处理。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-17 12:52:17

在发送结果之前,可以使用intval()函数将字符串转换为数字:

代码语言:javascript
复制
$string = '123';
$number = intval($string);
// 123

$number2 = intval('456');
// 456

或者直接在赋值语句上转换变量:

代码语言:javascript
复制
$string = '123';
$number = (int)$string;
// 123

$number2 = (int)'456';
// 456

或在AngularJS中使用transformResponse方法执行该操作:

代码语言:javascript
复制
$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;
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26425308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档