Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在角分量中使用枚举

如何在角分量中使用枚举
EN

Stack Overflow用户
提问于 2018-03-03 19:47:26
回答 3查看 84.9K关注 0票数 41

我的角度组件倾向于有一个全局状态(或“模式”),所以我正在寻找一种有效编码的方法。我想做的是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component({
      ....
})
export class AbcComponent implements OnInit {

  enum State {
    init, view, edit, create, wait
  }
  state: State = State.init;

其思想是,AbcComponent中的函数可以通过设置状态属性来驱动模板的操作。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="col" *ngIf="state === State.view"> ... </div>

问题是枚举定义不能出现在结构中。然后,如果我将它移到结构之外,那么模板就不会在其本地范围内。

有什么不同的方法吗?

如果有兴趣的话,我有几个布尔属性,每个状态一个。例如,、modeInit、、modeView、等。它可以工作,但很笨拙,因为一次只有一个是真正的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-03 20:07:09

您可以在类之外定义State枚举,可能在另一个文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export enum State {
  init, 
  view, 
  edit, 
  create, 
  wait
}

并将枚举分配给类中的公共字段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { State } from "../models/app-enums.model";

@Component({
  ....
})
export class AbcComponent implements OnInit {
  public StateEnum = State;
  public state = State.init;
  ...
}

然后,可以使用该公共字段来引用模板中的枚举:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="col" *ngIf="state === StateEnum.view"> ... </div>
票数 91
EN

Stack Overflow用户

发布于 2018-03-03 20:34:08

可以定义方法或getter,并将当前状态值与已导入的枚举进行比较。如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { State } from "../models/state-enum.ts";

@Component({
  ....
})
export class AbcComponent implements OnInit {
  private state: State = State.init;
  ...
  get isView() {
    return this.state === State.view;
  }
}

template.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div *ngIf="isView">Oh is view!</div>
票数 5
EN

Stack Overflow用户

发布于 2018-03-04 02:16:42

还可以使用声明合并使枚举作为组件的静态成员可用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component({
    ....
})
export class AbcComponent implements OnInit {
    state = AbcComponent.State.init;
}

export namespace AbcComponent {
    export enum State {
        init, view, edit, create, wait
    }
}

然后从constructor字段在模板中访问它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="col" *ngIf="state === constructor.State.view"> ... </div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49091786

复制
相关文章
C# 中的“智能枚举”:如何在枚举中增加行为
在这个示例中,我们定义了一个名为 Weekday 的枚举,其中包括每个星期的日子。然后在 Main 方法中,我们将 today 变量设置为 Tuesday,并使用 ToString() 方法将其转换为字符串。
郑子铭
2023/08/30
3190
C# 中的“智能枚举”:如何在枚举中增加行为
Java 中枚举类的使用
在日常写项目时,很多数据字典常量都需要定义和使用,同时在 Java 面试中,枚举也是一个绕不开的话题,这篇文章就来详细介绍一下枚举的定义以及使用。 01  【什么是枚举类?】 枚举类型在 C# 或 C++ 、 java 、 VB 等一些编程语言中是一种基本数据类型而不是构造数据类型。 而在C语言中则是一种构造数据类型。它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。 枚举类的定义就是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内,使用枚举可以很方便地定义数据常量
老九君
2022/09/02
1.6K0
Java 中枚举类的使用
在JS中愉快地使用枚举
这样是非常常见的用法,包括很多类库都在这样做,但是如果哪天把字符串拼错了,就会直接返回false,所以说这个方法是不太合理的。
kifuan
2022/10/24
3.2K0
如何在 seaborn 中创建三角相关热图?
Seaborn是一个用于数据可视化的Python库。它在制作静态图时很有用。它建立在matplotlib之上,并与Pandas数据结构紧密集成。它提供了几个图来表示数据。在熊猫的帮助下,我们可以创造有吸引力的情节。在本教程中,我们将说明三个创建三角形热图的示例。最后,我们将学习如何使用 Seaborn 库来创建令人惊叹的信息丰富的热图。
很酷的站长
2023/08/11
3710
如何在 seaborn 中创建三角相关热图?
ts中枚举
填坑,官方文档:https://www.tslang.cn/docs/handbook/enums.html
阿超
2022/08/21
5440
ts中枚举
Java枚举——枚举的作用、使用方法、使用场景
枚举类是一种特殊类,它和普通类一样可以使用构造器、定义成员变量和方法,也可以实现多个接口,但不能继承类。
呆呆
2021/10/04
8470
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
28.8K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
java枚举使用详解
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。 在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。 package com.ljq.test; /** * 枚举用法详解 * * @author jiqinlin */ public class TestEnum { /** *
三哥
2018/06/15
7620
Java枚举类型使用
在编程中,常常遇到多种类型、多种状态的情况,对于这种可以事先预知的业务我们常常有两种表示方法:
付威
2018/12/05
2.2K0
[视频编码] 数字视频分量编码
在广播电视行业中,数字电视是一项全新的系统概念,广播电视技术发展迅猛,数字技术取代模拟技术已成为不可动摇的事实。数字电视节目容量巨大,画面更加清晰,这是模拟电视节目根本无法与之相比。
轻舞飞扬SR
2021/02/24
6960
[视频编码] 数字视频分量编码
在Android中使用枚举注解而不是枚举
很多开发规范都是不建议在Android中使用枚举的,在Android系统中使用枚举的开销是使用常量的2倍。一般地,在一个文件中定义常量
阳仔
2019/07/31
1.4K0
在Android中使用枚举注解而不是枚举
FPGA中截位导致的直流分量如何去除?
  在用FPGA做算法时,由于FPGA中一般都是使用定点数据,因此经常需要移位操作。比如一个16bit的信号经过滤波器后,由于滤波器的增益,输出结果肯定不是16bit,如果我们想保持输入输出的位宽是一致的,那就必须要进行移位。
猫叔Rex
2022/01/24
1.6K0
FPGA中截位导致的直流分量如何去除?
9.6 使用枚举类型
1、如果一个变量只有几种可能的值,则可以定义为枚举类型,所谓“枚举”就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。
小林C语言
2019/07/12
5370
9.6 使用枚举类型
c++枚举类型enum输出_python中的枚举
Enum枚举:枚举是一组命名整型常量,枚举类型是使用 enum 关键字声明的。枚举是值类型,数据直接存储在栈中,而不是使用引用和真实数据的隔离方式来存储,其包含自己的值,且不能被继承或者传递继承,枚举中每个元素的基础类型是 int。可以使用冒号指定另一种整数值类型。
全栈程序员站长
2022/10/01
1.5K0
c++枚举类型enum输出_python中的枚举
Java中的枚举Enum
如果我要定义这样一个枚举类,让它能够返回对应日期的中文怎么办?我们可以定义枚举中的成员函数。
卡尔曼和玻尔兹曼谁曼
2019/01/25
1.1K0
枚举进程中的模块
在Windows中枚举进程中的模块主要是其中加载的dll,在VC上主要有2种方式,一种是解析PE文件中导入表,从导入表中获取它将要静态加载的dll,一种是利用查询进程地址空间中的模块,根据模块的句柄来得到对应的dll,最后再补充一种利用Windows中的NATIVE API获取进程内核空间中的模块,下面根据给出这些方式的具体的代码片段:
Masimaro
2018/08/31
1.7K0
Python 中的枚举类型
你好,我是 征哥,今天分享一下 Python 中的枚举类型,为什么需要枚举类型,及如何使用。
somenzz
2022/10/25
9510
Python中的枚举类型
>>> from enum import Enum #导入模块中的类 >>> class Color(Enum): #创建自定义枚举类 red = 1 blue = 2 green = 3 >>> Color.red #访问枚举类的成员 <Color.red: 1> >>> type(Color.green) #查看枚举类成员的类型 <enum 'Color'> >>> isinstance(Color.red, Color) True >>> x = dict() >>>
Python小屋屋主
2018/04/16
1.2K0
Java switch 使用枚举类
开发过程中为了代码的可阅读性和可维护性,很多类型字段往往会习惯使用枚举去定义,可是在一些判断里面想用switch去代替if else 就会出现以下问题
全栈程序员站长
2022/09/14
1.2K0
Java switch 使用枚举类
点击加载更多

相似问题

在使用前引用角分量中的枚举

11

角分量中的依赖注入(如指令)

22

角分量状态,如反应状态,使用状态钩

12

无法通过角分量中的接口访问子枚举

12

角分量-分量关系

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文