【发布时间】:2020-05-15 08:26:08
【问题描述】:
我的 Angular 组件往往具有全局状态(或“模式”),因此我正在寻找一种有效编码的方法。我试图做的是:
@Component({
....
})
export class AbcComponent implements OnInit {
enum State {
init, view, edit, create, wait
}
state: State = State.init;
这个想法是 AbcComponent 中的函数可以通过设置 state 属性来驱动模板的操作。例如:
<div class="col" *ngIf="state === State.view"> ... </div>
问题是 enum 定义不能出现在 class 结构中。然后,如果我将它移到 class 结构之外,那么模板就不会在其本地范围内。
有其他方法可以做到这一点吗?
附:如果有什么兴趣,我一直在做的是我有几个 boolean 属性,每个状态一个。例如 modeInit modeView 等。它可以工作,但很笨拙,因为一次应该只有一个 true。
【问题讨论】:
-
作为这个问题的作者,我对重新打开这个问题不感兴趣,因为它已被标记的答案充分回答。但是,我看不出这是如何“基于意见”的。这是一个真正的问题,它有一个非直观的解决方案。 Typescript模板中枚举的用例不明显,解决方法不是意见。
标签: angular typescript