我目前堅持路由和對話的組合。 我有一個列表元素的視圖,當我點擊列表中的一個元素時,我希望Detail視圖在對話框(彈出窗口)中顯示。 事情是,我也想在我的網址列表元素的ID和當我重新加載頁面,而對話框仍然打開時,我想跳到這個確切的位置了(對話框是在全屏,它看起來像一個自己的看法)。SAPUI5/OPENUI5 - 使用對話框路由
所以,我走到這一步:
當我點擊一個元素列表中的我調用這個函數
campaignSelectHandler : function() {
if(!this.fragment) {
var controller = new sap.ui.controller("ui.controls.fragments.EventDetail");
this.fragment = sap.ui.xmlfragment("ui.controls.fragments.EventDetail", controller);
}
//this.router.navTo(navigation.Constants.EventDetailFragment, {id : 12345});
this.router.navTo(navigation.Constants.EventDetailFragment, {id: 1337});
this.fragment.open();
},
接下來的事情是我跳到我的片段
<Dialog id="dialogEventDetail"
xmlns:view="ui.views.pages"
xmlns="sap.m"
xmlns:controls="ui.controls"
xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc"
contentWidth="100%" contentHeight="100%"
showHeader="false"
class="eventDetail"
horizontalScrolling="false"
verticalScrolling="false">
<mvc:XMLView viewName="ui.views.pages.EventDetail">
</mvc:XMLView>
</Dialog>
在這個對話框片段中,我加載了我的視圖,包括我的控制器等。 這適用於打開對話框並顯示url路徑,但顯然只要我重新加載頁面ev一切都消失了。
除此之外,我從我啓動路由器的AbstractController擴展了「ui.views.pages.EventDetail」視圖。它適用於我的普通視圖,但是當我打開對話框時,我放棄了對它的引用,並且無法返回到我的初始視圖。
我知道這個解決方案不能工作,所以我希望你有一些建議,如何讓它的工作!
提前致謝!
BTW:這是Component.js
routes : [
{
pattern : "",
name : navigation.Constants.MyEvents,
view : navigation.Constants.MyEvents,
viewId : navigation.Constants.MyEvents,
targetAggregation : "pages",
targetControl : "idAppControl",
subroutes : [
{
pattern : "{id}",
name : navigation.Constants.EventDetailFragment,
view : navigation.Constants.EventDetailFragment
}
]
}