Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个条件总是正确的?_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 为什么这个条件总是正确的?

Javascript 为什么这个条件总是正确的?,javascript,angular,typescript,Javascript,Angular,Typescript,quick.html <ul *ngFor="let q of categoryid;"> <li colspan="4"> <strong>Q.No. {{q.questionId}}</strong> {{q.questionName}} </li> <li> <ul *ngFor="let o of q.options; let i = index" (click)

quick.html

<ul *ngFor="let q of categoryid;">
<li colspan="4">
    <strong>Q.No. {{q.questionId}}</strong>  
    {{q.questionName}} 
</li>
<li>
    <ul *ngFor="let o of q.options; let i = index" 
        (click)="selectedIndex = (i+q.questionId)">
        <div>
           <li 
              [ngClass]="{correctAnswer: o.Ans && selectedIndex===(i + q.questionId),
                          wrongAnswer: !o.Ans && selectedIndex===(i+q.questionId)}">
               <strong>{{o.Ans}}</strong>  {{o.optionName}}
           </li>
        </div>
      </ul>
    </li>
 </ul>

  • Q.No。{{q.questionId} {{q.questionName}}
  • {{o.Ans}{{o.optionName}
  • correctAnswer
    类始终为
    true
    。为什么?

    “false”字符串实际上被视为真布尔表达式,请参见


    为了解决这个问题,您必须为o对象提供一个布尔值({Ans:false}而不是{Ans:false}),或者运行一个不同的检查,如:o.Ans==“true”。您也可以考虑使用类型转换相等性检查,比如O.ANS=真,但我不推荐这种方法。

    < P>您的类名应该在单引号中,并将条件语句放入括号:

    <li
       [ngClass]="{'correctAnswer': (o.Ans && selectedIndex === (i + q.questionId)),
                   'wrongAnswer': (!o.Ans && selectedIndex === (i+q.questionId)})">
       <strong>{{o.Ans}}</strong>  {{o.optionName}}
    </li>
    
    此外,您可以在HTML中显示调试信息,并查看表达式的计算方式:

    <p>(o.Ans && selectedIndex === (i + q.questionId)) is 
        {{ (o.Ans && selectedIndex === (i + q.questionId)) }}</p> 
    
    <p>(!o.Ans && selectedIndex === (i+q.questionId)}) is 
        (!o.Ans && selectedIndex === (i+q.questionId)})</p> 
    
    (o.Ans&&selectedIndex==(i+q.questionId))是
    {(o.Ans&&selectedIndex==(i+q.questionId))}

    (!o.Ans&&selectedIndex==(i+q.questionId)})是 (!o.Ans&&selectedIndex==(i+q.questionId)})


    是否调试并查看了值?请将代码/数据包含为文本,而不是图像。
    <p>(o.Ans && selectedIndex === (i + q.questionId)) is 
        {{ (o.Ans && selectedIndex === (i + q.questionId)) }}</p> 
    
    <p>(!o.Ans && selectedIndex === (i+q.questionId)}) is 
        (!o.Ans && selectedIndex === (i+q.questionId)})</p>