为什么在这种情况下会超出最大调用堆栈?
Why is the maximum call stack exceeded in this case?
首先:我已经知道这个错误的含义,并且我在Whosebug上做了研究。
我是初学者,我不明白在这种特殊情况下这个错误是如何导致的以及如何解决它。
当我尝试导航回上一个视图时出现错误:
sap-ui-core.js:976 Uncaught RangeError: Maximum call stack size exceeded
at d.a.fireEvent (sap-ui-core.js:976)
at d.fireNavigate (sap-ui-core.js:573)
at d.N._backTo (NavContainer.js:6)
at d.N.back (NavContainer.js:6)
at constructor.navigation (wiegung.controller.js:106)
at f.onBeforeShow (wiegung.view.js:17)
at f.a._handleEvent (sap-ui-core.js:961)
at d.N._backTo (NavContainer.js:6)
at d.N.back (NavContainer.js:6)
at constructor.navigation (wiegung.controller.js:106)
所以,这是我的观点:
onBeforeShow : function(oEvent) {
if (oEvent.isBack){
this.oController.navigation('back');
} else {
this.oController.initData(oEvent.data);
this.oController.getUiControl();
this.oController.getDevices();
}
},
还有我的控制器:
navigation : function(oSite, oData) {
var oApp = sap.ui.getCore().byId("app");
if (oSite == 'back') {
oApp.back();
} else {
oApp.to(oSite, "slide", oData);
}
},
感谢您的帮助!
onBeforeShow
调用 navigation
调用 oApp.back
调用 oApp._backTo
调用 _handleEvent
调用 onBeforeShow
并无限重复。
首先:我已经知道这个错误的含义,并且我在Whosebug上做了研究。 我是初学者,我不明白在这种特殊情况下这个错误是如何导致的以及如何解决它。
当我尝试导航回上一个视图时出现错误:
sap-ui-core.js:976 Uncaught RangeError: Maximum call stack size exceeded
at d.a.fireEvent (sap-ui-core.js:976)
at d.fireNavigate (sap-ui-core.js:573)
at d.N._backTo (NavContainer.js:6)
at d.N.back (NavContainer.js:6)
at constructor.navigation (wiegung.controller.js:106)
at f.onBeforeShow (wiegung.view.js:17)
at f.a._handleEvent (sap-ui-core.js:961)
at d.N._backTo (NavContainer.js:6)
at d.N.back (NavContainer.js:6)
at constructor.navigation (wiegung.controller.js:106)
所以,这是我的观点:
onBeforeShow : function(oEvent) {
if (oEvent.isBack){
this.oController.navigation('back');
} else {
this.oController.initData(oEvent.data);
this.oController.getUiControl();
this.oController.getDevices();
}
},
还有我的控制器:
navigation : function(oSite, oData) {
var oApp = sap.ui.getCore().byId("app");
if (oSite == 'back') {
oApp.back();
} else {
oApp.to(oSite, "slide", oData);
}
},
感谢您的帮助!
onBeforeShow
调用 navigation
调用 oApp.back
调用 oApp._backTo
调用 _handleEvent
调用 onBeforeShow
并无限重复。