BindingConverter¶
Преобразователь данных между элементом и источником.
Description¶
Встречаются ситуации, когда формат представления данных в элементе и источнике данных отличается. Наряду с этим остается необходимость в привязке данных (синхронизации данных между элементом и источником). Для решения этой проблемы используется преобразователь данных - объект с двумя методами конвертации данных.
Properties¶
Name | Type | Description |
---|---|---|
toSource |
Функция | Функция конвертации, осуществляющая преобразование данных элемента в формат данных источника. Функция вызывается при изменении данных в элементе, если направление обмена данными в привязке установлено в twoWay или toSource. В параметре args передается информация, необходимая для осуществления конвертации. Свойство args.value содержит данные элемента для конвертации. Возвращаемое значение функции интерпретируется, как результат конвертации. |
toElement |
Функция | Функция конвертации, осуществляющая преобразование данных источника в формат данных элемента. Функция вызывается при изменении данных в источнике, если направление обмена данными в привязке установлено в twoWay или toElement. В параметре args передается информация, необходимая для осуществления конвертации. Свойство args.value содержит данные источника для конвертации. Возвращаемое значение функции интерпретируется, как результат конвертации. |
Examples¶
{
toSource: function(context, args) {
return parseInt(args.value); // string to integer
},
toElement: function(context, args) {
return args.value.toString(); // integer to string
}
}
BindingConverter.metadata¶
Метаданные типа BindingConverter.
Properties¶
Name | Type | Description |
---|---|---|
ToSource | String |
Функция конвертации, осуществляющая преобразование данных элемента в формат данных источника |
ToElement | String |
Функция конвертации, осуществляющая преобразование данных источника в формат данных элемента |
Examples¶
В качестве функции конвертации может быть указано как название прикладного скрипта,
{
"Scripts": [
{
"Name": "ElementToSourceConverter",
"Body": "..."
},
{
"Name": "SourceToElementConverter",
"Body": "..."
}
],
...
"Converter": {
"ToSource": "ElementToSourceConverter",
"ToElement": "SourceToElementConverter"
}
}
так и тело функции.
{
"Converter": {
"ToSource": "{ return (args.value == '-' ? false : true); }",
"ToElement": "{ return args.value ? '+' : '-'; }"
}
}