【发布时间】:2016-10-08 08:27:58
【问题描述】:
在我知道之前,我曾经这样定义我的指令:
...
inputs: [
'onOutside'
]
...
export class ClickOutsideDirective {
@Output() onOutside: EventEmitter<any> = new EventEmitter();
}
但后来我阅读了样式指南,它说您不应该在输出前加上 on,因为 Angular 2 支持模板中的 on- 语法。
所以我正在尝试将其更改为:
@Input() outsideClick: any;
@Output() outsideClick: EventEmitter<any> = new EventEmitter();
但是,如果不允许使用 on 前缀,我发现很难将 @Input 名称与 Output 名称分开。
在您可以同时命名 @Input 和 @Output 之前,如果在导出的类中同时声明两者,那么这将不再有效,因为将引发错误。
如果我将@Input 命名为outside 并将@Output 命名为outsideClick,这实际上没有任何意义,因为它们都是同一个东西。 outside 是我在调用outsideClick 时要执行的函数。
另外,如果outside 不再是同一个名字,outsideClick 将不知道要执行什么,或者我错过了什么?
我应该如何在此处命名 @Input 和 @Output 变量,以便它仍然有效并且与第一个示例中一样有意义?
编辑:
使用示例:
<div clickOutside [exceptions]="['.toggler']" (outside)="doSomethingOnOutsideClick()"></div>
【问题讨论】:
标签: javascript angular typescript angular2-styleguide