Javascript 杜兰达尔';s使用不带参数的require.js定义块
我需要在javascript文件中为我的一个页面使用一个库。我发现我可以使用:Javascript 杜兰达尔';s使用不带参数的require.js定义块,javascript,parameters,requirejs,durandal,Javascript,Parameters,Requirejs,Durandal,我需要在javascript文件中为我的一个页面使用一个库。我发现我可以使用: define(["plugins/http", "someLibrary"], function (http, foo) { /* code: never using "foo", but using methods from someLibrary */ } 最初,我希望foo有一个值,因为所有其他示例(如http)都有参数值,但someLibrary显然不是这样工作的。将foo作为参数似乎毫无用处,所以
define(["plugins/http", "someLibrary"], function (http, foo) {
/* code: never using "foo", but using methods from someLibrary */
}
最初,我希望foo有一个值,因为所有其他示例(如http)都有参数值,但someLibrary显然不是这样工作的。将foo作为参数似乎毫无用处,所以我删除了它,看看它是否仍然有效,它确实有效
关闭参数可以吗?在这种情况下,Durandal/Require.js最佳实践的总体共识是什么?这两种选择似乎都不是特别优雅。有没有更好的方法来实现同样的目标?是的。有各种库可以设置行为,比如引导,它们可以包含在require语句中,但不包含函数参数。您还可以编写以下require.js速记:
var http = require('plugins/http');
require('somelibrary');
function viewModel() {
...
}
如果插件返回引用(如
plugins\http
case),则只需要指定一个变量
某些插件将自身附加到其他对象或插件,向其他对象添加函数或属性,因此它不会返回任何引用(如示例中的someLibrary
)。所以你不需要一个变量
我个人的做法是,根据是否需要指定变量,对
define(…)
中插件的顺序进行排序,不需要变量的插件将在之后定义,需要变量的插件将在之前定义。这是为了与javascript的函数定义方式保持一致,您总是将可选参数放在右边。如果这个答案对您有帮助,请不要忘记向上投票并接受