Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在SAPUI5中更改管线时防止视图无效_Javascript_Sapui5 - Fatal编程技术网

Javascript 在SAPUI5中更改管线时防止视图无效

Javascript 在SAPUI5中更改管线时防止视图无效,javascript,sapui5,Javascript,Sapui5,我有一个包含选项卡式内容的页面,其中包含路径#grants/{grantId}。我希望每个选项卡都可以通过路径#grants/{grantId}/{tabId}访问 所以我像下面一样设置了路由器,我可以工作,但是当我切换选项卡时(例如,当我从#grants/123/tab1切换到#gratns/123/tab2),页面的内容会被重新生成(无效)。我怎样才能防止呢 var oRouter = new sap.ui.core.routing.Router([ { pattern: "gran

我有一个包含选项卡式内容的页面,其中包含路径
#grants/{grantId}
。我希望每个选项卡都可以通过路径
#grants/{grantId}/{tabId}
访问

所以我像下面一样设置了路由器,我可以工作,但是当我切换选项卡时(例如,当我从
#grants/123/tab1
切换到
#gratns/123/tab2
),页面的内容会被重新生成(无效)。我怎样才能防止呢

var oRouter = new sap.ui.core.routing.Router([
{
    pattern: "grants",
    name: "_grants",
    view: "grants.Grants",
    viewType: sap.ui.core.mvc.ViewType.HTML,
    viewId: "grants",
    targetControl: "theContent",
    targetAggregation: "content",
    clearTarget: true,
    subroutes: [
    {
        pattern: "grants/{id}/:period:",
        name: "_grantPortfolio",
        view: "grants.GrantPortfolio",
        viewType: sap.ui.core.mvc.ViewType.HTML,
        viewId: "grantPortfolio",
        targetControl: "theContent",
        targetAggregation: "content",
        clearTarget: true
    }]
}]);

据我所知,我建议在控制器的路由匹配回调中实现一个特殊的逻辑。在那里,您可以根据事件参数检查需要加载的数据和已经加载的数据。要获得更具体的提示,需要一个运行的示例。

什么是视图无效?@matbtt view被重新加载(或刷新),就好像我们正在导航到另一个页面一样。您期望什么,您正在导航到另一个路径?!#grants/123和#grants/123/periods之间有什么区别?@matbtt我希望视图不会刷新,因为事实上我们没有导航到另一条路线。在
#grants/123
#grants/123/periods
之间没有区别,因为它们只是模式
grants/{id}/:period:
的两个匹配项,通过添加内容更改散列将作为导航处理。请解释你在做什么(用代码示例),这样更容易帮助你。