"不是一个功能"仅在谷歌浏览器中的angularjs错误

时间:2015-06-19 06:29:33

标签: javascript angularjs google-chrome sorting

我遇到了这个问题,我无法找出原因,也无法在谷歌上找到任何解释。我有一个$ http.get方法从URL中检索一些数据,成功后我正在排序响应。但是当我在谷歌浏览器上运行页面时,我收到错误" TypeError:response.sort不是函数"

var orderOfGroups = ["alpha", "beta", "gamma", "delta"];

$http.get(url)
.success( function (response, status, headers, config) {
    response.sort( function(a, b) {
        var aname = orderOfGroups.indexOf(a.team);
        var bname = orderOfGroups.indexOf(b.team);

        return bname-aname;
    });
});

我收到了#34; response.sort"线。这也只发生在谷歌浏览器中,我在firefox和IE10中进行了测试,并且它在这些浏览器上运行良好。 我收到的json数据(响应)具有以下格式

[
    {
        team: "gamma",
        value: "p"
    },
    {
        team: "alpha",
        value: "q"
    },
    ......
]

请告诉我如何解决这个问题?

1 个答案:

答案 0 :(得分:6)

您的response不是数组。它可能是一个包含数组的属性(例如response.data)或数组的字符串版本的对象,然后您需要使用JSON.parse并将字符串转换为数组。

无论如何,sort是在Array的原型上 - 这意味着所有数组都将拥有该属性 - 这与AngularJS或<{1}}相关 google chrome