2016-09-05 78 views
1

我與Angular2工作,我有兩個布爾值:隱藏,崩潰了。我打印他們和他們的OR表達式。輸出爲:Angular2或表達怪異的結果

{{ hidden }} {{ collapsed }} {{ hidden || collapsed }} 

    false   false    false 
    true   false    true 
    false   true    false 

我期待「真」時,其中一個是真實的,但它給「假」,如果第一個是「假」和第二個是「真」。我使用OR運算符是否錯誤?這裏有什麼問題?

編輯:我想 「假& &真」,並讓 「真」

+0

我無法重現它。 https://plnkr.co/edit/A9rdr07hIWkkuTOlHxMy?p=preview – yurzui

+0

這裏是我的代碼的部分:的 {{隱藏}} {{摺疊}} {{(隱藏&&摺疊)}} {{hide ||摺疊}}並在視圖:假真真假 –

+0

是'hidden'和'collapsed'實際上布爾值或者他們值被轉換到TRUE;和'在表達式中使用時FALSE'? –

回答

0

嘗試以下操作:

<div>{{ type(hidden) }} {{ type(collapsed) }}</div> 
<div>{{ hidden }} {{ collapsed }}</div> 
<div>{{ hidden || collapsed }}</div> 

,並在組件

type(prop) { 
    return typeof prop; 
} 

Plunker

+0

它顯示隱藏爲字符串。但我將它聲明爲布爾值,並且在父項中給它布爾值。爲什麼這是一個字符串? –

+0

我不明白,但我修好了:)謝謝! –

+0

'hidden:boolean'只在編譯時才起作用。這只是打字稿封裝在JavaScript。在運行時你可以使用這個屬性的任何值,因爲它是javascript) – yurzui

0

我有相同的概率lem,t & & f成爲現實! 我發現@Input我從html注入必須與括號[]。 假設傻冒從HTML代碼傳送隱藏的,所以它應該是:

<app-input-user [hidden]="false"></app-input-user> 

然後隱藏將是布爾始終。你可以在OnInit()中查看它的類型並看看:)