Как вызвать объект не из файла, который я использую require.js - PullRequest
0 голосов
/ 28 июня 2018

Я вызываю объект AjaxForm на моей html-странице

<script>
        require(['app', '/assets/build/js/app/ajaxform.js'], function (a) {
            a.AjaxForm.initialize({$_modx->getPlaceholder('AjaxForm.params')});
        });
</script>

Но я получаю ошибку

Cannot read property 'AjaxForm' of undefined

Мой файл ajaxform.js

define('app', ['jquery'], function ($) {
    'use strict';
    var AjaxForm = {
        initialize: function (afConfig) {

            $(document).ready(function () {
                $.jGrowl.defaults.closerTemplate = '<div>[ ' + afConfig['closeMessage'] + ' ]</div>';
            });

.......

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Я сделал это:

requirejs(["app", "app/ajaxform"], function () {
    require(['ajaxform'], function (e) {
        e.initialize({$_modx->getPlaceholder('AjaxForm.params')});
    });
});

А в файле ajaxform.js

define('ajaxform', ['jquery','jgrowl','jqueryform'], function ($,jGrowl,ajaxSubmit) {
....
return AjaxForm;
0 голосов
/ 30 июня 2018

Вы возвращаете AjaxForm? Я думаю, что вам не хватает этого:

define('app', ['jquery'], function ($) {
    'use strict';
    var AjaxForm = {
        initialize: function (afConfig) {

            $(document).ready(function () {
                $.jGrowl.defaults.closerTemplate = '<div>[ ' + afConfig['closeMessage'] + ' ]</div>';
            });
        }
    }

    return AjaxForm;
});

Затем в вашем require вы делаете:

<script>
    require(['app', '/assets/build/js/app/ajaxform.js'], function (AjaxForm) {
        AjaxForm.initialize({$_modx->getPlaceholder('AjaxForm.params')});
    });
</script>   

Надеюсь, это поможет

...