как связать данные омоделя в динамически создаваемом меню в sap ui5? - PullRequest
0 голосов
/ 10 октября 2019

Я хочу связать описание в пунктах меню, как показано на скриншоте ниже:

            var menu=new sap.m.Menu({
                path : "/plants",
                title: "Notes For1234: ",
                template: new sap.m.MenuItem({                                        
                       text: "{description}",
                       })


            });
            that.getView().addDependent(menu);

            menu.setModel(thisOfBtn.getModel());
            const eDock = sap.ui.core.Popup.Dock;
            menu.openBy(oButton,false, eDock.BeginTop, eDock.BeginBottom, false);
        }

[code Image] 1

imageменю enter image description here

1 Ответ

0 голосов
/ 06 ноября 2019

Просто для исправления привязки, отображаемой в вашем вопросе, необходимо указать имя привязки агрегации и путь внутри объекта агрегации (см. Ссылку на изображение и консольную часть в этом).

Примечание:Я использовал элемент управления sap.ui.unified.Menu.

Образец:

Создать фиктивное меню:

var oJSONModel = new sap.ui.model.json.JSONModel({
"Plants": [
           {key: "0001", description: "Plant 0001"},
           {key: "0002", description: "Plant 0002"}, 
           {key: "0003", description: "Plant 0003"}
          ]
});

var oMenu1 = new sap.ui.unified.Menu({
                items : {
                            path : "/Plants",
                            template: new sap.ui.unified.MenuItem({
                                        text :"{description}"
                            })
                        }
});

oMenu1.setModel(oJSONModel);

// Adding to some dummy Sapui5 sample page
sap.ui.getCore().byId("sdk---sample").addDependent(oMenu1); 

oMenu1.open();

Рендеринг меню с хромированной консоли

...