在navigator.camera.getPicture中丢失"此"上下文

2020-08-18 03:23发布

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

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


SAPUI5 Cordova函数navigator.camera.getPicture如何在当前上下文中传递?

例如,我要将" this"传递给this.onImageCapture,它作为变量" a"传递-到目前为止,还不错...

但是,当调用navigator.camera.getPicture时,仅显示imageData。

如果我添加任何参数。 例如

  navigator.camera.getPicture(this.onImageSuccess(a)......
 

我没有传递imageData。

此外,由于无法将诺言附加到该函数,因此也无法将其添加到navigator.camera.getPicture。

如何访问当前上下文(this)和imageData?

  handleMenuItemPress:function(oEvent){

         var msg ="";

         msg = oEvent.getParameter(" item")。getValue();
         if(msg ===" Camera"){
             this.onImageCapture(this);
         }
         否则,如果(msg ==="图库"){
                 this.onImageSelect(this);
         }
     }

 onImageCapture:function(a){
         var self = a;
         navigator.camera.getPicture(this.onImageSuccess,this.onImageFail,{
            //品质:75,
             质量:10,
             targetWidth:300,
             targetHeight:300,
             sourceType:navigator.camera.PictureSourceType.CAMERA,
             destinationType:navigator.camera.DestinationType.FILE_URI
         });
     },

 onImageSuccess:function(imageData){
    //无法访问此
     },

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

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


SAPUI5 Cordova函数navigator.camera.getPicture如何在当前上下文中传递?

例如,我要将" this"传递给this.onImageCapture,它作为变量" a"传递-到目前为止,还不错...

但是,当调用navigator.camera.getPicture时,仅显示imageData。

如果我添加任何参数。 例如

  navigator.camera.getPicture(this.onImageSuccess(a)......
 

我没有传递imageData。

此外,由于无法将诺言附加到该函数,因此也无法将其添加到navigator.camera.getPicture。

如何访问当前上下文(this)和imageData?

  handleMenuItemPress:function(oEvent){

         var msg ="";

         msg = oEvent.getParameter(" item")。getValue();
         if(msg ===" Camera"){
             this.onImageCapture(this);
         }
         否则,如果(msg ==="图库"){
                 this.onImageSelect(this);
         }
     }

 onImageCapture:function(a){
         var self = a;
         navigator.camera.getPicture(this.onImageSuccess,this.onImageFail,{
            //品质:75,
             质量:10,
             targetWidth:300,
             targetHeight:300,
             sourceType:navigator.camera.PictureSourceType.CAMERA,
             destinationType:navigator.camera.DestinationType.FILE_URI
         });
     },

 onImageSuccess:function(imageData){
    //无法访问此
     },
付费偷看设置
发送
3条回答
木偶小白
1楼 · 2020-08-18 03:35.采纳回答

嗨,亚当,

在使用javascript时,我也为此感到困惑。 一种方法是直接对函数进行编码,而不是使用回调函数。

 onImageCapture:function(a){
         var self = a;
         navigator.camera.getPicture(
 函数(imageData){
 ->自我将可访问
 }
 ,
 this.onImageFail,{
            //品质:75,
             质量:10,
             targetWidth:300,
             targetHeight:300,
             sourceType:navigator.camera.PictureSourceType.CAMERA,
             destinationType:navigator.camera.DestinationType.FILE_URI
       });
 },
 
哎,真难
2楼-- · 2020-08-18 03:32

能否粘贴更多代码? 您的onImageCapture函数如何调用?

尝试删除"视图"

来自

 var test = oEvent.getSource()。getBindingContext(" view"); 

 var test = oEvent.getSource()。getBindingContext(); 

但是,这将为您提供触发事件的对象的绑定上下文。

据我了解,我认为您想检索整个视图的绑定上下文,您还可以执行以下操作

 this.getView()。getBindingContext(); 

或检索视图的绑定上下文的对象

 this.getView()。getBindingContext()。getObject();
 
空代码
3楼-- · 2020-08-18 03:57
  
navigator.camera.getPicture(jquery.proxy(this.onImageSuccess,this),this.onImageFail,{ //品质:75, 质量:10, targetWidth:300, targetHeight:300, sourceType:navigator.camera.PictureSourceType.CAMERA, destinationType:navigator.camera.DestinationType.FILE_URI });

一周热门 更多>