Hello,
i created a formatter to show a text from an "i18n" model.
When the page (view) starts, the function "ageDescription" inside of the formatter is called 3 times:
Why this happen?
Is correct?
How i can handle a function not managing "undefined" values?
formatter.js
sap.ui.define([ "tools/moment" ], function (DateFormat) { "use strict"; return { ageDescription : function (sBirthday, sFormat) { var oBundle = this.getView().getModel("i18n").getResourceBundle(); var sAge = oBundle.getText("tooYoung"); var sFromMyBd = moment(sBirthday, sFormat).fromNow(); do.something(); return sAge; } } });
main.controller.js
sap.ui.define([ "sap/ui/core/mvc/Controller", "sap/ui/model/json/JSONModel", "sap/ui/model/resource/ResourceModel", "sap/m/library", "model/formatter" ], function (Controller, JSONModel, ResourceModel, mobileLibrary, formatter) { "use strict"; return Controller.extend("controller.main", { formatter: formatter, onInit : function () { do.something(); } }); });
main.view.xml
<mvc:View controllerName="controller.main" xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc" xmlns:l="sap.ui.layout" xmlns:f="sap.ui.layout.form"> <Label text="{ parts: [ {path: '/user/birthday'}, {path: '/user/dateFormat'} ], formatter: '.formatter.ageDescription' }" class="sapUiSmallMargin"/> </mvc:View>