Plugins 如何将自定义事件添加到NativeScript UI插件

Plugins 如何将自定义事件添加到NativeScript UI插件,plugins,nativescript,Plugins,Nativescript,在NativeScript中为UI插件定义自定义事件需要什么 我试图实现的是触发一个foo事件,该事件的工作原理类似于按钮上的点击事件,可以如下连接: 我所做的基本上归结为从插件代码内调用foo的eventName值的notify函数(忽略内存泄漏注意事项): import*作为“ui/core/view”中的视图; 导出类FooPlugin扩展了view.view{ 构造函数(){ 超级(); 设置超时(()=>{ 这个,通知({ eventName:'foo', 对象:这个,, });

在NativeScript中为UI插件定义自定义事件需要什么

我试图实现的是触发一个
foo
事件,该事件的工作原理类似于
按钮上的
点击
事件,可以如下连接:


我所做的基本上归结为从插件代码内调用
foo
eventName
值的
notify
函数(忽略内存泄漏注意事项):

import*作为“ui/core/view”中的视图;
导出类FooPlugin扩展了view.view{
构造函数(){
超级();
设置超时(()=>{
这个,通知({
eventName:'foo',
对象:这个,,
});
//我也试过这个;
}, 1000);
}
}

我还缺少什么东西,需要做什么才能使这项工作正常进行?

创建一个属性
public static fooEvent=“foo”
属性的名称很重要,它应该是
eventname
+
Event
,现在它应该可以工作了

  • 创建事件的属性
    publicstaticfooevent=“foo”
    。名字很重要!它必须是
    eventname
    +
    “Event”

  • 在声明文件
    index.d.ts
    FooPlugin.d.ts

    //重写on方法时需要。
    on(eventNames:string,callback:(data:EventData)=>void,thisArg?:any)


  • 您可以在setTimeout方法之外创建新变量作为引用,请参考
    。例如:```var that=this;setTimeout(()=>{that.notify({eventName:'foo',object:that,})“``。我可以这样做,但因为我使用ES6 arrow语法,所以没有必要这样做,因为上下文是自动处理的。好吧,谢谢!我想知道为什么没有记录这一点,或者我在文档中不知怎的漏掉了它?有时我希望我能早点来StackOverflow。是的,它还没有记录,我三天来解决这个问题,f最后我发现所有的插件都这么做了,我试了试,结果成功了:)damet garm agha;)@HabibKazemi谢谢!我在寻找这个高和低,应该记录下来!