点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我在使用oData模型读取记录的控制器中有以下代码。 在成功函数中,我试图访问外部函数变量" that"。 但是我收到错误" 未捕获的ReferenceError:未定义"。 我无法确定问题。 您能告诉我我所缺少的吗? 感谢您的帮助
Ravikanth,问候
onRouteMatched:函数(){ 调试器; var oModel = this.getOwnerComponent()。getModel(" PES"); var path ="/img/DEFAULTSSet('ABCD')"; var that = this; oModel.read(path,{ 异步:错误, 成功:函数(oData){ that.getOwnerComponent()。getModel(" defaults"); }, 错误:函数(oError){ } }); },
Ravikanth,您好
尝试将您的方法与此绑定:
感谢Prashil。 .bind(this)正在工作,但是我试图使用闭包,因为这样我就可以访问外部函数中的所有其他变量。 当然,我们可以将所有需要的变量作为此变量的一部分,但这意味着要挤占该变量。
也许是因为onRouteMatched。
在传递函数onRouteMatched时,按如下所示传递onRouteMatched.bind(this)或显式传递" this"以实现如下所示的功能
https://help.sap。 com/doc/saphelp_uiaddon20/2.05/zh-CN/f9/6d2522a5ca4382a274ae3c6d002ca0/frameset.htm
以同样的方式,您不需要将此传递给您,您可以像下面这样
成功:function(){
}。bind(this)
嗨,Mahesh,
再次感谢您的关注。 在分配" var that = this"时以及在" oModel.read"调用之前,此变量具有视图引用。 实际上,oModel本身是使用此变量(" this.getOwnerComponent()。getModel(" PES");"。)创建的。
到目前为止,我将继续使用.bind(this)变体。
谢谢
Ravikanth
嗨,Ravikanth,
我相信外部函数中的大多数变量在成功回调中仍然应该可用。 这意味着oRouteMatched函数变量也应该可用,除非使用了参数。
对于参数,您仍然可以将此参数保存在外部函数中作为局部变量,并且应该能够访问内部函数中的局部变量。
谢谢
芦笋
一周热门 更多>