У меня проблемы с привязкой данных моего пользовательского элемента управления.
Мой элемент управления наследуется от sap.m.Input
и расширяет его специальным помощником значений.
Одним из моих новых свойств нового элемента управления является простой заголовок для диалогового окна помощи значения. Это связано с моделью i18n.
Когда я теперь использую свой элемент управления в нормальной форме, все работает. Заголовок привязан правильно и показывает значение привязанного свойства i18n в этой модели. Если я использую свой элемент управления в качестве шаблона в столбце элемента управления sap.ui.table
, он показывает только значение по умолчанию для свойства title. Привязка данных, похоже, не работает. Но все еще работает над унаследованными свойствами (такими как значение).
Для упрощения здесь мой элемент управления, который теперь имеет только это свойство заголовка, и если запрашивается значение helphelp, отображает текущее значение в окне предупреждения. В таблице показано значение по умолчанию. И без таблицы, он показывает связанное значение из модели i18n.
Вот упрощенный управляющий код:
sap.ui.define([
"sap/ui/core/Control",
"sap/m/Input",
], function(Control, Input) {
"use strict";
return Input.extend("DvpClsSuggestInput", {
"metadata": {
"properties": {
// Title of Value-Help Dialog
"vhTitle": {
type: "string",
defaultValue: "Title"
}
}
},
init: function() {
Input.prototype.init.call(this);
this.setShowValueHelp(true);
this.attachValueHelpRequest(this.onValueHelpRequest.bind(this));
},
onValueHelpRequest: function(oEvent) {
var lvTitle = this.getVhTitle();
alert(lvTitle);
},
});
});
});
Использование в sap.ui.table.Table
(которое не работает и показывает значение по умолчанию свойства title):
<table:Column>
<m:Label text="{i18gn>HausWaehrung}" />
<table:template>
<dvp:MyInput
value="{ path : 'Inv>Hwaer', type : 'sap.ui.model.type.String' }"
vhTitle="{i18n>Currency}" />
</table:template>
</table:column>
Использование, которое работает:
<VBox>
<dvp:MyInput
value="{
path: 'Cls>/Currency',
type: 'sap.ui.model.type.String'
}"
vhTitle="{i18n>Currency}" />
</VBox>
Еще раз, привязка к свойству value работает в обоих направлениях. Проблема существует только с моей собственностью vhTitle
. Любые идеи приветствуются.