1
MultiSelect Master Listで経路パターンを設定するには?
私はマスターディテールアプリにマスターリストを持っていますが、マルチセレクトモードに設定すると、選択したすべてのアイテムのuserIdsを取得したいと思います。これらのデータを経路経由でdetail.controller.js
に渡すエレガントな方法はありますか?
単一選択マスターページでの私のshowDetail機能("pattern": "User/{objectId}"
):
this.getRouter().navTo("object", {
objectId : oItem.getBindingContext().getProperty("ID")
});
は私がUser/{objectIdArray}
、User/id1/id2/...
か何かを使用する必要がありますか? URLに奇妙に見えますか?
参考:
manifest.jsonを::
{
"pattern": "MultiSelect/{objectIds}",
"name": "multi",
"target": [
"master",
"multi"
]
}
Master.controller.js
_showDetail : function (oItem) {
const masterModel = this._oList.getMode();
if(masterModel === "None") {
this.getRouter().navTo("object", {
objectId : oItem.getBindingContext().getProperty("userID")
}, false);
} else { //MultiSelect Mode
const lists = this._oList.getSelectedItems(),
ids = lists.map(item => item.getBindingContext().getProperty("userID"));
this.getRouter().navTo("multi", {
objectIds : JSON.stringify(ids)
}, true);
}
},
マルチユーザー@MarcへRoute Pattern Examples
マルチセレクトの目的は何ですか?ガイドラインによると、このアプリケーションタイプは、詳細に表示される1つの項目を選択するために使用されます。https://experience.sap.com/fiori-design-web/split-screen/ – matbtt
私はすべての情報を表示したい詳細ページで選択した項目それは許されないのですか? – Tina
あなたはあなたのURLの見た目をあまり気にしないでください。 1つのアイデア:あなたのIDを単純な区切り文字(例: "User/001,002,003")に連結し、その文字列をDetail.controllerで分割します – Marc