Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
Enums 角度2从HTML向组件传递枚举函数_Enums_Typescript_Angular - Fatal编程技术网

Enums 角度2从HTML向组件传递枚举函数

Enums 角度2从HTML向组件传递枚举函数,enums,typescript,angular,Enums,Typescript,Angular,我已经创建了一个枚举,根据它是添加模式还是编辑模式来打开一个模式 enum ModalTypes { Add, Edit } public openManageModal(type: ModalTypes) { if (type == ModalTypes.Add) { //Open edit modal } else { //Open add modal } } 我似乎不知道如何从HTML中调用它。我尝试过各种

我已经创建了一个枚举,根据它是添加模式还是编辑模式来打开一个模式

enum ModalTypes {
    Add,
    Edit
}

public openManageModal(type: ModalTypes) {
    if (type == ModalTypes.Add) {
        //Open edit modal
    }
    else {
        //Open add modal
    }
}
我似乎不知道如何从HTML中调用它。我尝试过各种方法,如OpenManage Modal(“添加”),但似乎都不起作用。显然,我可以在组件中创建一个函数,并将字符串解析为枚举,但我认为这种方法更合适。任何帮助都将不胜感激


谢谢

您应该能够像这样调用函数:

openManageModal(0) // for ModalTypes.Add
openManageModal(1) // for ModalTypes.Edit
{
    0: "Add",
    1: "Edit",
    Add: 0,
    Edit: 1
}
enum
声明将由TypeScript编译器传输到以下位置:

var ModalTypes;
(function (ModalTypes) {
    ModalTypes[ModalTypes["Add"] = 0] = "Add";
    ModalTypes[ModalTypes["Edit"] = 1] = "Edit";
})(ModalTypes || (ModalTypes = {}));
所以它基本上创建了一个如下所示的对象:

openManageModal(0) // for ModalTypes.Add
openManageModal(1) // for ModalTypes.Edit
{
    0: "Add",
    1: "Edit",
    Add: 0,
    Edit: 1
}

如您所见,
ModalTypes.Add==0
ModalTypes.Edit==1

是的!这很有魅力。谢谢我希望有一种方法可以通过名称而不是int来引用。这对我来说很有用。@aoakeson,我认为使用字符串会更好:
OpenManage Modal('add')
if(type=='add'){…}
。我同意@aoakeson的观点,通过名称引用会更好。使用字符串显然是一种更清晰的解决方法,但却忽略了使用枚举的要点。