moodle 的 AMD 模块 question_type
AMD module for moodle question_type
我正在尝试将一些 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');
但我遇到了同样的错误...
Folder structure:
question/type/mytype/
|--amd/
|--src
|--helloworld.js
|--build
|--helloworld.min.js
第一个肯定行不通,因为它会在 blocks/overview/amd/* 中查找 javascript 文件 'helloworld.js'.
第二个应该可以工作,除了在示例中,函数 'makeItBlue' 未导出 - 即它在模块外部不可用。
唯一可用的函数是模块返回的对象的一部分。在示例中,导出的对象称为 'greeting',它包含的函数是 'formal' 和 'informal'。这些并没有真正做任何非常有用的事情,但它们可以从模块外部调用。
查看此博客附带的 PDF post:http://learn1.open.ac.uk/mod/oublog/viewpost.php?post=164813
非常好的介绍在 Moodle 2.9+ 中使用 AMD 模块。
我正在尝试将一些 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');
但我遇到了同样的错误...
Folder structure: question/type/mytype/ |--amd/ |--src |--helloworld.js |--build |--helloworld.min.js
第一个肯定行不通,因为它会在 blocks/overview/amd/* 中查找 javascript 文件 'helloworld.js'.
第二个应该可以工作,除了在示例中,函数 'makeItBlue' 未导出 - 即它在模块外部不可用。
唯一可用的函数是模块返回的对象的一部分。在示例中,导出的对象称为 'greeting',它包含的函数是 'formal' 和 'informal'。这些并没有真正做任何非常有用的事情,但它们可以从模块外部调用。
查看此博客附带的 PDF post:http://learn1.open.ac.uk/mod/oublog/viewpost.php?post=164813 非常好的介绍在 Moodle 2.9+ 中使用 AMD 模块。