Angular Primeng 菜单栏访问方法问题

Angular Primeng Menubar Access To Method Problem

我尝试如下调用菜单 onclick 事件的方法,但出现错误。

component.ts

    loadWorkSpace(WorkSpaceName: string, QNameSpaceId: number, QEnvironemntId: number, QWorkSpaceId: number) {
this._qWorkSpaceFilterServiceProxy
                    .getAll(QWorkSpaceId, null, 0, 1000)
                    .subscribe((result) => {
                        filterItemList = _map(result.items, function (qWSFilter) {
                            return {
                                label: qWSFilter.qWorkSpaceFilter.workspaceFilterName, command: (event: Event) => this.consoleMsg()
                            };
                        });

                        this.items = [
                            {
                                label: 'Applications',
                                items: itemList
                            },
                            {
                                label: 'Filters',
                                items: filterItemList
                            }
                        ];
                    });}

    consoleMsg() {
        console.log("test");
    }

错误: Console error message

对不起我的英语不好。

这是因为consoleMsg()在函数内部调用时不存在,只是因为consoleMsg()是在函数调用之后描述的。您可以先尝试描述 consoleMsg(),然后再描述更大的函数。

由于我使用的“_map”方法,我无法访问 'this' 令牌。

这样做解决了问题:

filterItemList = result.items.map((qWSFilter) => {
                            return {
                                label: qWSFilter.qWorkSpaceFilter.workspaceFilterName, command: (event) => { this.consoleMsg() }
                            };
                        });