Med*_*era 0 javascript url routing sapui5
我想在我的 sapui5 应用程序中捕获一个可选的 url 参数。
显现:
"routes": [
{
"pattern": "page_1:query:",
"name": "page_1",
"target": [
"page_1"
]
}]
Run Code Online (Sandbox Code Playgroud)
控制器:
handleRouteMatched: function(oEvent) {
var oArgs, oView, oQuery;
oArgs = oEvent.getParameter("arguments"); // undefined
console.log(oEvent.mParameters);
Run Code Online (Sandbox Code Playgroud)
测试用例
根据测试用例模式 匹配
网址模式:查询:
清单模式:查询:
会匹配:{"query":"test=123123,bla=123213"}
网址:
/webapp/index.html?test=123
没有值:oEvent.mParameters.data.hash:“”
/webapp/index.html?#/query=123
有值:oEvent.mParameters.data.hash:查询=“123”
我认为您在理解 UI5 路由概念时失败了。您不应将其理解为 GET 请求。您可以在哈希路由中传递的参数不是 GET 参数。
因此,首先,您应该了解 URL 的各个部分,在这种情况下,我们可以这样说:
<host>:<port>?myGetParam1=value1&myGetParam2=value2#/My/Navigation/Pattern/ParamValue1/ParamValue2`
Run Code Online (Sandbox Code Playgroud)
从?到#您有 GET 请求的参数。他们去服务器端。
从头到尾,#您都有自己的哈希路由。在客户端使用。
如果您在清单中将模式定义为
/My/Navigation/Pattern/{ParamValue1}/:ParamValue2:
Run Code Online (Sandbox Code Playgroud)
那么下面的例子将起作用
#/My/Navigation/Pattern/3 --> 它传递 3 作为必需的paramValue1而没有传递给可选的paramValue2
#/My/Navigation/Pattern/3/2 --> 它传递 3 作为必需的paramValue1和 2 作为可选的paramValue2
但是,如果您尝试
#/我的/导航/模式/
它会失败,因为您已将paramValue1设置为强制
要获取这些参数,请在您的控制器中为“RouteMatched”事件定义一个事件处理程序。参数将在事件对象的“参数”中。这里解释清楚。
我建议您阅读本教程。它是 UI5 演示套件中最好的教程之一。
| 归档时间: |
|
| 查看次数: |
3366 次 |
| 最近记录: |