3

我正在从一个 json 文件中加载一堆数据,并且已经使用了这两个$http.get和 Restangular 来抓取它。

每当我将这些数据传递给我时,我都会$scope多次收到此错误:

Error: [$sce:itype] Attempted to trust a non-string value in a content requiring a string: Context: html

这似乎会为数组中的每个项目触发多次,所以不确定数据本身是否有问题?

只有当我将它传递给时才会出现问题$scope,并且根据Can we use $sce.trustAsHtml(string) out of "filter"s? 它发生在你trustAsHtml两次调用某事时,我不是。事实上,我什至没有调用过一次,所以只能假设当我将它传递给某个地方时发生这种情况$scope

$http.get('/airlines.json')
.success(function(data) {
    $scope.airlines = data;
    console.log(data);
});

我找不到有关此错误的更多信息,这很有帮助。数据如下:

[
  {
    "id":1,
    "name":"Private flight",
    "alias":"\\N",
    "iata":"-",
    "icao":"N/A",
    "callsign":"",
    "country":"",
    "active":"Y"
  },
  {
    "id":2,
    "name":"135 Airways",
    "alias":"\\N",
    "iata":"",
    "icao":"GNL",
    "callsign":"GENERAL",
    "country":"United States",
    "active":"N"
  },
  {
    "id":3,
    "name":"1Time Airline",
    "alias":"\\N",
    "iata":"1T",
    "icao":"RNX",
    "callsign":"NEXTIME",
    "country":"South Africa",
    "active":"Y"
  }
]

问题:为什么当我将它传递给范围时会出现这个错误,我该如何摆脱它?

4

1 回答 1

-1

解决方案在于您处理此 JSON 对象的方式。

 $scope.airlines = data; 

不是正确的方法,因为您的响应是一组 JSON 对象而不仅仅是一个 JSON 对象。JSON 中的 [ ] 附件用作数组,因此

 $scope.airlines = data[0]; 

将处理第一个 JSON ,这只是一种粗略的不干净的方法,但您可以通过循环添加数组元素。

没有数组 [] 的 JSON 响应可以由 angularJS 通过第一种方法很好地处理,但使用数组需要第二种方法。

希望有帮助。

于 2015-05-24T21:42:15.450 回答