javascript — модуль AMD для moodle.

Я пытаюсь добавить JS к моему типу вопроса … Итак, я прочитал, что следует использовать модули AMD, а модули YUI больше не рекомендуется использовать.
Я сделал все как в примере на: https://docs.moodle.org/dev/Javascript_Modules
Но когда я пытаюсь вызвать мой модуль из php:

$this->page->requires->js_call_amd('block_overview/helloworld','makeItBlue');

я получаю сообщение об ошибке в консоли (в Google Chrome):

No define call for block_overview...

Я также попробовал:

$this->page->requires->js_call_amd('qtype_mytype/helloworld','makeItBlue');

но я получил ту же ошибку …

Структура папки:
Вопрос / тип / MyType /
| --Amd /
| --src
| --helloworld.js
| --build
| --helloworld.min.js

0

Решение

Первый, конечно, не будет работать, так как он будет искать в файле blocks / Overview / amd / * файл javascript ‘helloworld.js’.

Второй должен работать, за исключением того, что в этом примере функция ‘makeItBlue’ не экспортируется, т.е. она недоступна за пределами модуля.

Доступны только те функции, которые являются частью объекта, возвращаемого модулем. В этом примере экспортируемый объект называется «приветствие», а содержащиеся в нем функции — «формальный» и «неформальный». Они на самом деле ничего полезного не делают, но их можно вызывать извне модуля.

Взгляните на PDF, приложенный к этому сообщению в блоге: http://learn1.open.ac.uk/mod/oublog/viewpost.php?post=164813
за действительно хорошее введение в использование модулей AMD в Moodle 2.9+.

0

Другие решения

Других решений пока нет …