【发布时间】:2018-09-25 10:26:21
【问题描述】:
我有以下代码块:
<tbody>
<tr *ngFor="let row of model">
<ng-container *ngFor="let columnDataName of columnDataNames">
<td *ngIf="modelConfig[columnDataName] && modelConfig[columnDataName].isVisible">
<ng-template *ngIf="showRowTextBox && columnDataName === conditionalInputName || columnDataName === conditionCheckBoxName; else otherColumns">
<ng-container *ngIf="columnDataName === conditionalInputName">
<input type="text" placeholder="Enter text here" [hidden]="!chkEnabled?.checked" (focusout)="onTextBoxFocusOut(row[primaryKeyColumnName], $event)" />
</ng-container>
<ng-container *ngIf="columnDataName === conditionCheckBoxName">
<input type="checkbox" [checked]="chkAll?.checked" #chkEnabled ngModel />
</ng-container>
</ng-template>
<ng-template #otherColumns>
<ng-container *ngIf="modelConfig[columnDataName].isDate;">
{{ row[columnDataName] | date:'d MMM yyyy' }}
</ng-container>
<ng-container *ngIf="modelConfig[columnDataName].isBoolean;">
<tfg-toggle onText="Yes" offText="No" [disabled]="true" [value]="row[columnDataName]"></tfg-toggle>
</ng-container>
<ng-container *ngIf="!modelConfig[columnDataName].isBoolean && !modelConfig[columnDataName].isDate">
{{ row[columnDataName] }}
</ng-container>
</ng-template>
</td>
</ng-container>
<td *ngFor="let buttonColumnName of buttonColumnNames">
<button (click)="executeButtonFunction(row[primaryKeyColumnName], buttonColumnName)" class="btn" [ngClass]="buttonColumnName === 'Delete' ? 'btn-danger' : 'btn-primary'">{{buttonColumnName}}</button>
</td>
<!-- <ng-container *ngIf="showRowTextBox">
<td>
<input type="text" placeholder="Enter text here" [hidden]="!chkEnabled.checked" (focusout)="onTextBoxFocusOut(row[primaryKeyColumnName], $event)"/>
</td>
<td>
<input type="checkbox" [checked]="chkAll?.checked" #chkEnabled ngModel/>
</td>
</ng-container> -->
</tr>
</tbody>
页面未按预期呈现,因为下面的 if 语句未评估为 true。
<ng-template *ngIf="showRowTextBox && columnDataName === conditionalInputName || columnDataName === conditionCheckBoxName; else otherColumns">
ShowRowTextBox 设置为 true,在迭代的某个时刻,columnDataName 将等于 conditionalInputName 或 condtionCheckBoxName。
我的逻辑不正确吗?
【问题讨论】:
-
这是您要找的东西吗?
-
@Neyxo 我已尝试按照您的建议格式化我的声明,但它仍然评估为假
-
@Neyxo 这真的会有所作为吗?
true && false || true将提供与true && (false || true)相同的输出。如果交换 OR 条件,则相同。 -
@vlaz 对,有道理。我没有想到优先级。
标签: javascript angular if-statement