3

私はjsonファイルから大量のデータを読み込んでおり、両方$http.getとRestangularを使用してそれを取得しています。

このデータを に渡すたびに、$scopeこのエラーが何度も発生します。

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

これは、配列内の各アイテムに対して複数回発生するように見えるので、データ自体が何らかの形で悪いのかどうかわかりませんか?

Can we use $sce.trustAsHtml(string) out of "filter"s?$scopeによると、問題は に渡した場合にのみ発生します。何かを 2 回呼び出したときに発生しますが、私はそうではありません。実際、私はこれを一度も呼び出していないので、それを渡したときにどこかで起こっているとしか思えません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 オブジェクトの配列であり、1 つの JSON オブジェクトだけではないため、正しい方法ではありません。[ ] JSON のエンクロージャは配列として使用されるため、

 $scope.airlines = data[0]; 

最初の JSON を処理します。これは単純でクリーンなメソッドではありませんが、ループを介して配列要素を追加できます。

配列 [] のない JSON 応答は、angularJS によって最初の方法で問題なく処理できますが、配列では 2 番目の方法が必要です。

それが役立つことを願っています。

于 2015-05-24T21:42:15.450 に答える