Javascript AttachEventance()导致“未定义不是函数”

Javascript AttachEventance()导致“未定义不是函数”,javascript,model-view-controller,url-routing,sapui5,Javascript,Model View Controller,Url Routing,Sapui5,在“I get a error Uncaught TypeError:undefined”之后是一个函数 通过大量的console.logs,我发现这个错误是在以下代码行的console中匿名抛出的: oView.getElementBinding().attachEventOnce(....) 附件是导致问题的功能。您知道如何解决这个问题或进一步调试吗 代码块: oView.getElementBinding().attachEventOnce("dataReceived",

在“I get a error Uncaught TypeError:undefined”之后是一个函数

通过大量的console.logs,我发现这个错误是在以下代码行的console中匿名抛出的:

oView.getElementBinding().attachEventOnce(....)
附件是导致问题的功能。您知道如何解决这个问题或进一步调试吗

代码块:

        oView.getElementBinding().attachEventOnce("dataReceived", jQuery.proxy(function () {

            var oData = oView.getModel().getData(sReportPath);
            if (!oData) {
                sap.ui.core.UIComponent.getRouterFor(this).myNavToWithoutHash({
                    currentView : oView,
                    targetViewName : "namespace.view.NotFound",
                    targetViewType : "XML"
                });
            }
        }, this));
引自最佳实践指南:


这整件事都是在“路线匹配”部分触发的

AttachEventance似乎不是JavaScript的标准部分。您可以通过打开JS控制台,选择页面上的任意元素,并运行object.AttachEventance===undefined;来验证这一点;。我敢打赌,这本标准指南在正文的前面已经定义了它。它还可能是您想要的功能之一

当绑定上下文引用特定实体时,它会无限循环

但是,绑定首先使用以下方法:

将所有内容绑定到控件 使用保税清单中的第一个项目 但是,一旦一个控件点击另一个控件,从而触发所提到的代码行,绑定就会希望更改为特定的实体http://odataservice/entity“WithASpecificKey”

问题是,如果您没有在OData服务中实现方法,就会出现这个错误。乍一看,这似乎很奇怪,因为它在最初的方法中有效,但在单击之后无效。这就是为什么它有点像是要调试的


我所做的是在OData服务中正确实现readEntity方法。

以前发生了什么?在最佳实践指南中,此调用之前有一些行。你试过Chrome的功能在异常时停止吗?@matbtt我想我找到了错误。这是OData后端的一个问题。我没有实现readEntity。。。啊,没关系,检查我的答案;p函数AttachEventance在SAPUI5/OpenUI5 EventProvider对象中定义。当绑定扩展该对象时,该功能应可用。
          // Check that the product specified actually was found
          oView.getElementBinding().attachEventOnce("dataReceived", jQuery.proxy(function() {
              var oData = oView.getModel().getData(sProductPath);
              if (!oData) {
                  sap.ui.core.UIComponent.getRouterFor(this).myNavToWithoutHash({
                      currentView : oView,
                      targetViewName : "sap.ui.demo.tdg.view.NotFound",
                      targetViewType : "XML"
                  });
              }
          }, this));