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