SAPUI5: как получить BindProperty из свойства, связанного с моделью?
У меня есть этот код:
//create table
tableContent=getcontent();
var oTable2 = new sap.ui.table.Table(tableId, {
width : "100%",
visibleRowCount: tableContent.length,
selectionMode : sap.ui.table.SelectionMode.None,
resizable : false,
flexible : false
});
var img = new sap.m.Image({
press: function() {console.log(img.getProperty("src"))
}});
img.bindProperty("src", "src");
oTable2.addColumn(new sap.ui.table.Column({
label: new sap.ui.commons.Label({ text: "" }),
template: img,
autoResizable: false,
width : '10%'
}));
var oModel2 = new sap.ui.model.json.JSONModel();
oModel2.setData({ modelData: tableContent });
oTable2.setModel(oModel2);
oTable2.bindRows("/modelData");
oTable2.sort(oTable2.getColumns()[0]);
oTable2.placeAt(containingDivId);
Проблема в том, что я определяю свойство в конструкторе, которое должно печатать img
источник:
var img = new sap.m.Image({
press: function() {console.log(img.getProperty("src"))
}});
Но когда я пытаюсь принять это так:
img.bindProperty("src", "src");
Я получаю пустой текст (ничего).
Как я могу получить это ограниченное значение? Любая другая функция?
Второй вопрос: как я могу добавить пользовательское свойство img?
Скажем, я не буду иметь в img: src, alt и myCustomTxt. Как я могу добавить недвижимость myCustomTxt
?
Обновить:
Я пробовал:
var img = new sap.m.Image({
"src" : "assets/images/btn-X.png",
"press" : function(event) {
var binding = event.getSource().getBindingInfo("src").binding;
console.log(binding.getValue());
}
});
но я получаю эту ошибку при нажатии на изображение:
cart-module.js:151 Uncaught TypeError: Cannot read property 'binding' of undefined(…)
Спасибо!
1 ответ
Я предполагаю, что у вас есть свойство с именем "src" в каждой записи вашей модели. Затем вы можете связать это следующим образом:
new sap.m.Image({
"path" : "{src}",
"press" : function(event) {
var binding = event.getSource().getBindingInfo("src").binding;
if (binding) {
jQuery.sap.log.debug(binding.getValue());
}
}
});
Для добавления пользовательских атрибутов вы можете использовать метод addCustomData, который ожидает и экземпляр sap.ui.core.CustomData.
img.addCustomData(new sap.ui.core.CustomData({ "key" : myCustomTxt, "value" : "myCustomText" });