【发布时间】:2018-05-15 09:22:40
【问题描述】:
我使用 Angular 5,弹出窗口的标题依赖于布尔值。 当属性 isEditing 为 true 时,标题应为“编辑用户”。 否则标题应为“添加用户”。
它的语法是怎样的?
<dxo-popup title="edit user" .../>
我搜索以下内容:
感谢您的帮助! 弗兰克
【问题讨论】:
-
我搜索类似:
标签: angular angular-ng-if
我使用 Angular 5,弹出窗口的标题依赖于布尔值。 当属性 isEditing 为 true 时,标题应为“编辑用户”。 否则标题应为“添加用户”。
它的语法是怎样的?
<dxo-popup title="edit user" .../>
我搜索以下内容:
感谢您的帮助! 弗兰克
【问题讨论】:
标签: angular angular-ng-if
其他解决方案要求您更改 HTML,或向 Typescript 添加不必要的代码。
这是一个三元:
<dxo-popup [title]="isEditing ? 'Edit user' : 'Add user'" .../>
【讨论】:
*ngIf="isEditing" 更复杂的逻辑被委托给组件。
我喜欢从模板中取出功能并将其移动到组件中:
组件:
isEditing = true;
get title() {
return this.isEditing ? 'edit user' : 'add user';
}
HTML 模板:
<dxo-popup title="{{ title }}" .../>
【讨论】:
你可以的
<ng-container *ngIf="isEditing;then edit else add"></ng-container>
<ng-template #edit>edit user</ng-template>
<ng-template #add>add user</ng-template>
【讨论】:
另一种解决方案是在组件中使用函数来返回文本。
组件:
isEditing = true;
popupTitle(){
return (this.isEditing ? "Edit User" : "Add User");
}
HTML:
<dxo-popup title="{{popupTitle()}}" .../>
【讨论】:
我正在搜索这个问题并找到了一个简单版本的答案,我希望将其添加到此处作为有用的参考。
<button title=" {{ condition ? 'Some TRUE text' : 'Some FALSE text'}}"> Test Button </button>
【讨论】: