Javascript AttachEventance()导致“未定义不是函数”
在“I get a error Uncaught TypeError:undefined”之后是一个函数 通过大量的console.logs,我发现这个错误是在以下代码行的console中匿名抛出的: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",
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));