2016-09-05 2 views
1

저는 Angular2로 작업 중이며 두 개의 부울 값을가집니다 : 숨김, 접음. 나는 그들과 그들의 OR 표현을 인쇄하고있다. 그 중 하나에 해당하는 경우 Angular2 OR Expression 이상한 결과

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

    false   false    false 
    true   false    true 
    false   true    false 

내가 "true"를 기대하지만, 첫 번째가 "거짓"이고 두 번째는 "사실"의 경우는 "false"를 제공합니다 출력이다. OR 연산자를 잘못 사용하고 있습니까? 여기에 어떤 문제가 있습니까?

편집 : 나는 "거짓 & & true"를 시도하고 다음과 같은 시도

+0

재현 할 수 없습니다. https://plnkr.co/edit/A9rdr07hIWkkuTOlHxMy?p=preview – yurzui

+0

다음은 내 코드의 일부입니다. {{hide}} {{collapsed}} {{(hide && collapsed)}} {{hide || 축소 형}}보기에서 : false true true false –

+0

'hidden '과'collapsed'는 실제로 부울 값입니까? 표현식에서 사용될 때'true'와'false'로 변환되는 값입니까? –

답변

0

"true"로 제공합니다

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

하고 구성 요소를

type(prop) { 
    return typeof prop; 
} 

Plunker

+0

문자열을 hidden으로 표시합니다. 하지만 그것을 부울로 선언하고 부모 부울 값을 부여했습니다. 왜 그것이 문자열입니까? –

+0

나는 그것을 이해하지 못했지만 그것을 고쳤습니다 :) 고마워요! –

+0

'hidden : boolean'은 컴파일시에만 작동합니다. 그것은 자바 스크립트를 통해 typescript 래퍼입니다. 런타임에서 javascript이기 때문에이 속성에 대한 모든 값을 사용할 수 있습니다. – yurzui

0

나는 똑같은 prob를 가졌다. lem, t & & f가 사실이되었습니다! HTML에서 삽입 한 @Input은 대괄호 []로 표시되어야합니다. 의이 your'e는 HTML 태그에서 숨겨진 지나가는 말을하자, 그래서해야한다 : 다음 항상 부울 될 것입니다 숨겨진

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

. OnInit()에서 유형을 확인하고 볼 수 있습니다.