почему форматер не работает во фрагменте xml?

в моей другой библиотеке есть функция форматирования, и моя цель - использовать эту функцию. Вот мой Formatter.js:

sap.ui.define([], function () {
"use strict";
    var Formatter = {
        showAsDate : function(str){...}
    };

    return Formatter;
 });

И в моем фрагменте я использую его, как показано ниже:

<Text text="{
    path: 'jsonModel>/date',
    formatter : '.Formatter.showAsDate'
    }" />

и я вызываю Formatter.js в своем контроллере, как показано ниже:

sap.ui.define(["libpath/Formatter"], function (Formatter){
    "use strict";

    return Controller.extend("controller.myController", {

        Formatter : Formatter,

        //I add my fragment to myView with this method
        //and I am calling this method in onInit.
        _showFormFragment : function (sFragmentName) {
            var oPage = this.getView().byId("page");
            oPage.removeAllContent();
            oPage.insertContent(this._getFormFragment(sFragmentName));
        }
    });

});

Я использую библиотеку openui5beta. И я закодировал свое представление и контроллеры в соответствии с в пример пошагового руководства . И вы можете увидеть подобное использование в InvoiceList.controller.js, InvoiceList.view.xml, HelloDialog.fragment.xml. Но эти примеры показывают, как получить доступ к форматировщику из представления, а не из фрагмента. Я могу получить доступ к Formatter.js из myView.view.xml, но не могу получить доступ к нему из своего фрагмента. Буду признателен за любую помощь.


person melomg    schedule 30.09.2015    source источник


Ответы (1)


Можете ли вы поделиться, как вызывается ваш фрагмент? Обычно при вызове фрагмента у вас есть дополнительный параметр для указания контекста объекта JS, подобного этому

var oFragment = sap.ui.xmlfragment("YourFragment.xml",this);

приведенный выше код вызывается в контроллере, поэтому «это» будет относиться к экземпляру контроллера, и функции форматирования должны работать.

person Veeraraghavan N    schedule 01.10.2015
comment
он был вызван как 'oFormFragment = sap.ui.xmlfragment(this.getView().getId(), view. + sFragmentName);' но теперь я добавил этот параметр в конец, и он работает. Большое спасибо. - person melomg; 02.10.2015