2017-05-04 123 views
0

我有一个边栏菜单组件,其中包含一个用于保存菜单中项目的服务。然后多个来源可以根据他们认为合适的方式改变菜单。在Typescript中定义对象回调的最佳方法?

目前每个项目实现SidebarItem:

export interface SidebarItem { 
    name: string, 
    link: Route|string, 
    icon ?: string 
} 

但是我能赶上某些事件(点击,悬停),并希望有一个选项来定义侧边栏上的项目本身的回调。

我想知道完成此操作的最佳方法。我应该在界面上定义两个属性,让每个人决定他们如何实现它,或者有什么选择吗?我不认为侧边栏项目可以是类,因为我不想为每个侧边栏项目添加一个新类。

如果有帮助,我也可以使用aurelia事件聚合器发送事件。

PS:如果这感觉很主观,只需将标题改为“How to”即可。我提出的方法是疯狂的猜测,我不认为这是正确的。

+0

目前还不清楚你在问什么。你在问如何在这个接口中包含对回调函数的引用吗? –

+0

有一件事可能是提供不需要实现的约定方法(=>不要将它们放在界面中),但是如果您需要该功能,则必须实现它们。与Aurelia组件生命周期方法相比(附加,绑定等)。他们不是必需的,但是如果你想在组件被连接之前做一些事情,你必须实现这个方法。 –

+0

@NitzanTomer对不起,如果这不清楚。我们以Angular 2组件为例。你可以创建一个组件类,但是当组件被销毁时你可能需要做些什么。 Angular 2的方法是,在组件上实现_OnDestroy_接口,然后在该类上实现一个ngOnDestroy()方法。 我的问题是类似的。例如,当用户点击菜单中的“取消帐户”按钮时,我想显示可确认的对话框。 1/2 – marekpw

回答

0

我结束了在该接口上下面的语法去:

onClick?: (e: MyEvent) => void

由于Nitzan托梅尔中的注释。