我需要在我的javascript文件中为我的一个页面使用库。我发现我可以使用:
define(["plugins/http", "someLibrary"], function (http, foo) {
/* code: never using "foo", but using methods from someLibrary */
}
最初,我期望foo的值,因为所有其他示例(如http)都有参数值,但显然不是某些图书馆的工作方式。将foo作为参数似乎没用,所以我删除它以查看它是否仍然有效,并且确实有效。
关闭参数是否可以?在这种情况下,Durandal / Require.js最佳实践的一般共识是什么?这两种选择都不是特别优雅。有没有更好的方法来实现同一目标?
答案 0 :(得分:1)
是。有各种各样的库可以设置行为,比如bootstrap,这些库可以包含在require语句中但不包含在函数参数中。您还可以写下以下require.js的简写:
var http = require('plugins/http');
require('somelibrary');
function viewModel() {
...
}
答案 1 :(得分:1)
如果插件返回引用(如plugins\http
情况),则只需要指定的变量。
某些插件会将其自身附加到其他对象或插件,向其他对象添加函数或属性,因此它不会返回任何引用(例如示例中的someLibrary
)。所以你不需要变量。
我的个人实践是根据define(...)
中插件的顺序来命令,根据他们是否需要指定的变量,不需要变量的插件,将定义稍后,需要变量的那些将被定义为第一个。这是为了与javascript的function
定义方式保持一致,你总是将可选参数放在右边。