如何修改angular $ http.get()。然后将无效的JSON响应为有效的JSON

时间:2016-12-30 04:54:32

标签: angularjs json angularjs-scope typehead

我们需要在收件箱框中实现提前输入功能,但是当我们得到来自$ http的响应时,get是无效的JSON,因此我无法做到这一点。

以下我用于视图级别的方法

uib-typeahead="name for name in collections ($viewValue)"

角:

$scope.collections = function(val) {
                    return $http.get('/Documents/DocumentsList/', {
                        params : {
                            stk : val
                        }
                    }).then(
                            function(response) {
                                if (response.data.suggestions) {
                                    $("[uib-typeahead-popup].dropdown-menu").css('display','block');
                                    return response.data.suggestions
                                            .map(function(item) {
                                                return item.term;
                                            });
                                };
                            });
                };

JSON响应:

{} && {
    "name": "John",
    "age": 31,
    "city": "New York"
}

如何将无效的JSON修改为有效的JSON并在那时传递有效的响应。

1 个答案:

答案 0 :(得分:2)

最好在源头修复问题但是,如果你不能这样做,那就实现你自己的响应转换器

return $http.get('/Documents/DocumentsList/', {
    params: { stk: val },
    transformResponse: function(data) {
        return angular.fromJson(data.substring(6));
    }
})...