Angular2 OR 表达式奇怪的结果

Angular2 OR Expression Weird Result

我正在使用 Angular2,我有两个布尔值:隐藏、折叠。我正在打印它们和它们的 OR 表达式。输出是:

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

    false          false              false
     true          false               true
    false           true              false

我希望 "true" 其中一个为真,但如果第一个为 "false",第二个为 "true",它会给出 "false"。我使用 OR 运算符错了吗?这里有什么问题?

编辑:我尝试了 "false && true",它给出了 "true"

尝试以下操作:

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

并在您的组件中

type(prop) {
  return typeof prop;
}

Plunker

我遇到了同样的问题,t&&f 成立了! 我发现我从 html 注入的 @Input 必须带方括号 []。 假设你的路过隐藏在 html 标签中,所以它应该是:

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

然后隐藏将始终是布尔值。您可以在 OnInit() 中检查它的类型并查看:)