2017-05-26 20 views
1

私はチュートリアルを見ていて、angularjsのElvisについて学んでいました。それから私は、オブジェクトを作成します。今、angularjs elvisは必須ではありませんか?

cabecaDeGelo{ 
    name: 'jailson', 
    lastname: 'mendes', 
    address: { 
     street: null, 
     lol: 'lol' 
    } 
} 

と試みた

名:{{ cabecaDeGelo.name}} - >作品罰金

ストリート:{{ cabecaDeGelo.address.street }} - >が正常に動作 WHAT ???

{{ cabecaDeGelo.address.street }} '原因はありません!それはNULLです!チュートリアルにコンソールエラーが表示されます。私はそれがバージョンの問題だと思っていたのですか?今私はもうELVISは必要ありませんか?

like:{{ cabecaDeGelo.address?.street }}? 私は混乱しました。

私の構成は@angular/cli: 1.0.4/node: 6.10.3

+0

空白のオブジェクトで 'cabecaDeGelo = {}'を宣言しましたか?最初のレベルの 'cabecaDeGelo.address'は失敗しませんが、第2レベルは' cabecaDeGelo.address.street'に失敗しますが、最初は '{} 'で定義されたオブジェクトの値がアドレスが未定義であるために推測しています.. –

答えて

0

nullまたは未定義の値を表示することは問題ではありません(とJavaScriptで、また角度の表現でもない、ではありませんでした)です。

問題が発生し、nullまたは未定義参照のプロパティを表示することは例外です。例えば

foo.barない場合は、問題を表示する

const foo = { 
    bar: null 
} 

。 null(または未定義)参照(foo.bar)のプロパティ(baz)にアクセスすることができないため、たとえばfoo.bar.bazなどを表示すると問題が発生します。ヌルセーフナビゲーションオペレータが必要です:

{{ foo.bar?.baz }}: OK 
{{ foo.bar.baz }}: exception 
+0

'{{foo.bar}}':オブジェクトがnullであることを示します。 '{{foo.bar?.baz}}':OK '{{foo.bar.baz}}':例外。 '{{foo?.bar}}'は何も表示しないでください。私はまだそれを取得しません。 – LuanDR

関連する問題