SAPUI5:更改 url 中的 id 后如何重定向到 NotFound 页面?
Posted
技术标签:
【中文标题】SAPUI5:更改 url 中的 id 后如何重定向到 NotFound 页面?【英文标题】:SAPUI5: How can I redirect to a NotFound page after change the id in the url? 【发布时间】:2016-04-06 07:16:12 【问题描述】:我有两个 XML 视图,我可以使用路由在它们之间导航。在第一个视图中,我有一个工作日列表,在第二个视图中,我有一个与工作日相关的膳食列表。我想做的事情:如果我将 URL 中的工作日 ID 更改为 8,例如,我想显示 Not found 页面。这是我的控制器,不知道能不能用_onBindingChange函数:
sap.ui.define([
"sap/ui/demo/nav/controller/BaseController"], function(BaseController)
"use strict";
return BaseController.extend("sap.ui.demo.nav.controller.DETAIL",
onInit: function()
var oRouter = this.getRouter();
oRouter.getRoute("meal").attachMatched(this._onRouteMatched, this);
,
_onRouteMatched: function(oEvent)
var oArgs, oView;
oArgs = oEvent.getParameter("arguments");
oView = this.getView();
var oTable = oView.byId("mealListID");
var listbinding = oTable.getBinding("items");
var oFilter = new sap.ui.model.Filter("dayId", sap.ui.model.FilterOperator.EQ, oArgs.dayId);
listbinding.filter([oFilter]);
,
_onBindingChange: function(oEvent)
// No data for the binding
if (!this.getView().getBindingContext())
this.getRouter().getTargets().display("notFound");
););
【问题讨论】:
您应该在问题中在此处发布代码,而不仅仅是指向其他地方的整个代码库。指向其他网站的链接会随着时间的推移而停止工作,这个问题将不再有意义。 【参考方案1】:您必须在 _onRouteMatched 方法中重新路由。
_onRouteMatched: function(oEvent)
//window.location.hash will give the hash value, so look for your id and re-route to other page
【讨论】:
【参考方案2】:是的,您可以使用_onBindingChange
。请参阅 Master-Detail 演示应用程序中的 this documentation 和代码 around here 以获取最佳实践示例,这与您在上面提出的建议几乎相同。
【讨论】:
以上是关于SAPUI5:更改 url 中的 id 后如何重定向到 NotFound 页面?的主要内容,如果未能解决你的问题,请参考以下文章
SAPUI5 DatePicker 如何在可以通过日历更改日期时禁止手动/键盘输入?