Включая Moment.js в LiveCycle Designer

В течение нескольких дней я пытался включить фактическую библиотеку Moment.js в свой динамический PDF, который я создал с помощью Adobe Livecycle Designer.

Мы использовали старую версию (1.7.2) без каких-либо проблем, но теперь я получаю только ошибку "Функция не существует".

У кого-нибудь есть опыт с этим?

Заранее спасибо.

2 ответа

Как включить Moment.js в форму Adobe LiveCycle:

  1. Скачать минимизированный скрипт
  2. В LiveCycle Designer откройте вашу форму и создайте объект Script с именем MOMENTJSMIN
  3. Скопируйте минимизированный скрипт в этот объект скрипта
  4. В окне редактора сценариев LiveCycle Designer отредактируйте объект сценария MOMENTJSMIN следующим образом:
  5. Удалить все сценарии до, но не включая вторую фигурную скобку {:

    !function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function()
    
  6. Удалите округленные скобки и точку с запятой в конце минимизированного сценария.

  7. Добавьте эту строку в начало минимизированного скрипта:

    if (xfa.momentjs == undefined) xfa.momentjs = function()
    
  8. В объект сценария MOMENTJSMIN добавьте эту функцию после завершения сценария:

    function getMomentJS(){
        return xfa.momentjs();
    }
    

Теперь ваш объект сценария MOMENTJSMIN настроен для предоставления Moment.js сценариям по всей вашей форме.

Чтобы использовать Moment.js в любом из ваших сценариев, запустите ваш объект сценария или сценарий события со следующей строкой:

var moment = MOMENTJSMIN.getMomentJS();

Теперь вы можете использовать момент () в любом месте скрипта, который начинается с этой строки. например:

var moment = MOMENTJSMIN.getMomentJS();
var jan07 = moment([2007, 0, 29]);
app.alert(moment().format("dddd, MMMM Do YYYY, h:mm:ss a"));
app.alert(jan07.format("dddd, MMMM Do YYYY") + " was " + jan07.fromNow());
app.alert(moment.isDate(new Date()));

Что я бы проверил первым:

  • Убедитесь, что ваш скрипт полностью загружен, прежде чем пытаться вызвать из него функции. (проверьте событие, где вы вызываете функцию-рассчитать, форма:readty и т. д.)
  • Проверьте ссылку на скрипт. Правильный путь? Правильное имя?
  • Проверьте, существует ли функция на самом деле
  • Проверьте параметры функции.
Другие вопросы по тегам