如何使用RequireJS访问(命名)模块?
让我们说这是我的模块( sayings / sayings-list.coffee ):
define 'saySomething', [], ->
alert 'something'
我的主文件( main.coffee )如下所示:
require ['sayings/sayings-list'], (sayings) ->
sayings.saySomething()
现在我要来回发送一个变量!类似的东西:
require ['sayings/sayings-list'], (sayings) ->
sayings.saySomething(text)
如何在我的模块中反映?
感谢。
答案 0 :(得分:1)
一般规则:你应该使用匿名define
调用而不是命名define
调用,让优化器(r.js
或其他理解AMD规范的优化器)在优化你的时候添加名称模块组成一个捆绑。此规则很少有例外,但您在此处显示的内容也不例外。
如果必须使用命名模块,则应按如下方式构造它:
define 'saySomething', [], ->
saySomething: (text) -> alert text
这样它就可以导出一个可以saySomething
访问的函数。请注意,模块名称和导出函数的名称可能不同。
然后您必须使用其名称加载它:
require ['saySomething'], (sayings) ->
sayings.saySomething(text)
并且您必须设置配置以提供将模块名称映射到包含它的文件的路径。这是必要的,因为通过将名称添加到define
调用,您已将模块名称与文件名解耦。所以你必须告诉RequireJS如何找到模块。
require.config
paths:
saySomething: "sayings/sayings-list"