我已经创建了一个枚举来打开一个基于其是添加模式还是编辑模式的模式。

enum ModalTypes {
    Add,
    Edit
}

public openManageModal(type: ModalTypes) {
    if (type == ModalTypes.Add) {
        //Open edit modal
    }
    else {
        //Open add modal
    }
}

我似乎不知道如何从html调用它。我尝试过各种方法,如openmanagemodal('add'),但似乎没有任何效果。显然,我可以在组件中创建一个函数,并将字符串解析为枚举,但我认为这种方式更合适。任何帮助都将不胜感激。
谢谢

最佳答案

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

openManageModal(0) // for ModalTypes.Add
openManageModal(1) // for ModalTypes.Edit

Cyscript编译器将将enum声明转载到以下内容:
var ModalTypes;
(function (ModalTypes) {
    ModalTypes[ModalTypes["Add"] = 0] = "Add";
    ModalTypes[ModalTypes["Edit"] = 1] = "Edit";
})(ModalTypes || (ModalTypes = {}));

所以它基本上创建了一个如下所示的对象:
{
    0: "Add",
    1: "Edit",
    Add: 0,
    Edit: 1
}

所以你可以看到ModalTypes.Add == 0ModalTypes.Edit == 1

关于enums - Angular 2从HTML向组件函数传递枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35371610/

10-12 17:45