我们需要在收件箱框中实现提前输入功能,但是当我们得到来自$ 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并在那时传递有效的响应。
答案 0 :(得分:2)
最好在源头修复问题但是,如果你不能这样做,那就实现你自己的响应转换器
return $http.get('/Documents/DocumentsList/', {
params: { stk: val },
transformResponse: function(data) {
return angular.fromJson(data.substring(6));
}
})...