2016-09-06 2 views
0

JSONデータの特定の変数をフィルタリングするときに、typescriptでエラーを回避する方法について質問があります。マルチメディア・コンテンツなしJSONデータがionic2であるTypeError

"per_facet": [], 
"geo_facet": [], 
"multimedia": [ 
{ 
"url": "https://static01.nyt.com/images/2016/09/07/world/06NYTNow-Obama2/06NYTNow-Obama2-thumbStandard-v2.jpg", 
"format": "Standard Thumbnail" 
}, 
{ 
"url": "https://static01.nyt.com/images/2016/09/07/world/06NYTNow-Obama2/06NYTNow-Obama2-thumbLarge-v2.jpg", 
"format": "thumbLarge", 
}] 

別の要素:マルチメディアの内容に

:私のJSONデータの 一部は次のようになります

"per_facet": [], 
"geo_facet": [], 
"multimedia": [], 

だから、あなたが見ることができるよう、配列の "multimedia"変数には配列の要素の1つに内部値があり、それ以外の変数は内部値を持ちません。

これは、このパラメータ(画像)を取得する方法です。

<img [src]= "item.multimedia[0].url" *ngIf="item.multimedia[0].url.indexOf('http') === 0">

私は、マルチメディア、配列、それはエラーERRになり のURLパラメータを読み取ろう

:「未定義のURLを読み取ることができません」。 (表示するデータがないので完全に理解できます) これはJavascriptで動作します。私はこれを解決する方法を教えています。

このエラーを回避し、この配列から他のパラメータを正常に取得する方法。

ありがとうございます。 Suresh

+0

コードの画像を投稿しないでください。 –

+0

これは '* ngIf'ではありませんか?また、 'item.multimedia [0]。?url'の構文について知っていますか? –

+0

"これはJavascriptで動作します"どのように? '([])[0]'にアクセスするとあなたに未定義が与えられ、.urlを使用するとそのエラーが発生します。 – Paarth

答えて

1

フィールドに直接アクセスするのではなく、その項目が最初にあるかどうかを確認してください。

あなたは

item.multimedia[0] && item.multimedia[0].url.indexOf('http') === 0 

または

item.multimedia.length > 0 && item.multimedia[0].url.indexOf('http') === 0 

を行うことができ、私が間違っている可能性がので、私はあなたのコード全体を参照することはできませんが、一般的に、私は個人を必要としない何かをやってお勧めしますインデックス作成は非常に壊れやすい可能性があります。

関連する問題