用于moodle的AMD模块question_type

时间:2016-01-04 16:44:15

标签: javascript php requirejs moodle amd

我正在尝试在我的问题类型中添加一些JS ...所以我读到应该使用AMD模块,并且不再鼓励使用YUI模块。 我在:https://docs.moodle.org/dev/Javascript_Modules的例子中做了所有的事情。 但是当我尝试从php调用我的模块时:

my_str

我在控制台中遇到错误(在谷歌浏览器上):

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

我也尝试过:

No define call for block_overview...

但我得到同样的错误......

Folder structure:
question/type/mytype/
                   |--amd/
                        |--src
                             |--helloworld.js
                        |--build
                               |--helloworld.min.js

1 个答案:

答案 0 :(得分:0)

第一个肯定不会起作用,因为它会在块/ overview / amd / *中查找javascript文件'helloworld.js'。

第二个应该可以工作,除了在示例中,函数'makeItBlue'不会被导出 - 即它在模块外部不可用。

唯一可用的功能是那些属于模块返回的对象的功能。在该示例中,导出的对象称为“问候”,其包含的函数是“正式”和“非正式”。这些并没有真正做任何非常有用的事情,但它们可以从模块外部调用。

查看此博客文章附带的PDF:http://learn1.open.ac.uk/mod/oublog/viewpost.php?post=164813 有关在Moodle 2.9 +中使用AMD模块的非常好的介绍。