如何在 RequireJS 中访问(命名)模块?
How To Access (Named) Modules In RequireJS?
如何使用 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)
这将如何反映 在我的模块中?
谢谢。
一般规则:您应该使用匿名 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"
如何使用 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)
这将如何反映 在我的模块中?
谢谢。
一般规则:您应该使用匿名 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"