Обычно форматеры находятся в своем собственном JS файле
Структура вашего проекта:
- webapp
|-- controller
|-- First.controller.js
|-- Second.controller.js
|-- util
|-- Formatter.js
|-- view
|-- First.view.xml
|-- Second.view.xml
|-- Component.js
|-- index.html
Ваш форматер. js может выглядеть следующим образом
sap.ui.define([], function () {
"use strict";
return {
NumberFormatter: function (sText, iNumber) {
...
},
MyOtherFormatter: function(...) {
...
}
};
});
Теперь каждый контроллер должен ссылаться на Formatter, чтобы сделать его доступным в вашем представлении.
sap.ui.define([
"sap/ui/core/mvc/Controller",
"../util/Formatter"
], function (Controller, Formatter) {
"use strict";
return Controller.extend("demo.controller.First", {
formatter: Formatter, // < Important
onInit : function () {
...
}
});
});
Наконец, вы можете использовать его в своем представлении
<m:Text text="{
parts: [
'myModel>firstText',
'myModel>/number'
],
formatter: '.formatter.NumberFormatter'
}" />
См. Шаг 23 рекомендуемого официального прохождения, который отвечает на 95% всех вопросов для начинающих!