回调函数无法调用函数

2020-09-16 13:16发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我是sapUI5空间...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我是sapUI5空间的新手,我想做的是调用" sap.ndc.BarcodeScanner.scan"函数来扫描这样的条形码:

 onPress:function(oEvent){
 sap.ndc.BarcodeScanner.scan(
 函数(mResult){

 this.NavResult(mResult);
 },
 函数(错误){

 },
 函数(mParams){

 }
 );
 },

 NavResult:function(mResult){
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" ResultView",{barcode:" barcode"});

 }
 

我的要求是,一旦成功读取条形码,便移至下一个视图。 但是上述调用方法" NavResult(mResult)"在回调函数中未被识别,似乎是范围问题。

我收到以下错误:

未捕获的TypeError:this.NavResult不是函数
     at Object.eval [as onSuccess](ScanView.controller.js?eval:50)
     在Object.onOK(BarcodeScanner.js?eval:6)
     在f.a.fireEvent(EventProvider-dbg.js:228)
     在f.a.fireEvent(Element-dbg.js:431)
     在f.firePress(ManagedObjectMetadata-dbg.js:568)
     在f.d.ontap(Button-dbg.js:289)
     在f_a_handleEvent(Element-dbg.js:162)
     在builder.U._handleEvent(UIArea-dbg.js:828)上
     在HTMLDivElement.dispatch(jquery-dbg.js:4737)
     在g(jquery-mobile-custom-dbg.js:1972)
 


如何更改此功能的范围以使其起作用。 非常感谢您的帮助。

致谢

Rakesh



4条回答
悠然的二货
2020-09-16 14:17

是的,在JavaScript中,每个函数都包含一个属性this,在javascript中,this的值不固定,取决于函数的调用方式。 您可以在上方将回调函数传递给条形码对象,并在扫描完成时稍后由条形码调用。 此值是这里永远不会成为控制器的调用对象的值。

要更改此设置,我们可以使用bind()函数将此值设置为控制器。

一周热门 更多>