Javascript 使用“Fragment.load”时如何使用“oEvent”?

Javascript 使用“Fragment.load”时如何使用“oEvent”?,javascript,sapui5,Javascript,Sapui5,使用此代码时,我能够使用oEvent: onPressDialog:功能(oEvent){ 如果(!这个){ this._oDialog=sap.ui.xmlfragment(“idDialog”,“com.Dialog”,this); this.getView().addDependent(this.\u oDialog); } 这个.u oDialog.setBindingContext(oEvent.getSource().getParent().getBindingContext());

使用此代码时,我能够使用
oEvent

onPressDialog:功能(oEvent){
如果(!这个){
this._oDialog=sap.ui.xmlfragment(“idDialog”,“com.Dialog”,this);
this.getView().addDependent(this.\u oDialog);
}
这个.u oDialog.setBindingContext(oEvent.getSource().getParent().getBindingContext());
这个;
},
但是,我试图使用
Fragment.load
来更改它,但是我无法从函数中获取
oEvent
。有什么想法吗

onPressDialog:功能(oEvent){
如果(!这个){
加载({//Fragment必需来自“sap/ui/core/Fragment”
id:this.getView().getId(),
名称:“com.Dialog”,
控制员:这个
}).then(函数(oDialog){
this.getView().addDependent(oDialog);
oDialog.setBindingContext(/*无法在此处访问正确的oEvent值*/);
oDialog.open();
}.约束(这个);
}
},
如上所述,执行事件处理程序(
onPressDialog
)后,
oEvent
参数将完全重置。也就是说,异步获取片段后,
oEvent
对象将不再包含相同的引用/参数值。在创建片段之前,尝试将目标引用存储在闭包变量中,然后在最终解析承诺时使用该变量

onPressDialog:异步功能(oEvent){
const myEventValue=oEvent.get/*…*//;//以后使用时不依赖oEvent。
如果(!这个){
this._oDialog=await Fragment.load({//Fragment必需来自“sap/ui/core/Fragment”
id:this.getView().getId(),
名称:“com.Dialog”,
控制员:这个,
});
this.getView().addDependent(this.\u oDialog);
}
//用我的价值做点什么。。。;
/*然后:*/这个。_oDialog.open();
},

这是否回答了您的问题?