我正在尝试在我的问题类型中添加一些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
答案 0 :(得分:0)
第一个肯定不会起作用,因为它会在块/ overview / amd / *中查找javascript文件'helloworld.js'。
第二个应该可以工作,除了在示例中,函数'makeItBlue'不会被导出 - 即它在模块外部不可用。
唯一可用的功能是那些属于模块返回的对象的功能。在该示例中,导出的对象称为“问候”,其包含的函数是“正式”和“非正式”。这些并没有真正做任何非常有用的事情,但它们可以从模块外部调用。
查看此博客文章附带的PDF:http://learn1.open.ac.uk/mod/oublog/viewpost.php?post=164813 有关在Moodle 2.9 +中使用AMD模块的非常好的介绍。