Durandal 的定义块使用 require.js 不带参数
Durandal's define block using require.js with no parameter
我需要在我的 javascript 文件中为我的一个页面使用一个库。我发现我可以使用:
define(["plugins/http", "someLibrary"], function (http, foo) {
/* code: never using "foo", but using methods from someLibrary */
}
最初,我期望 foo 有一个值,因为所有其他示例(如 http)都有参数值,但这显然不是 someLibrary 的工作方式。将 foo 作为参数似乎没有用,所以我将其删除以查看它是否仍然有效,并且确实有效。
这个参数关掉可以吗?在这种情况下,Durandal/Require.js 最佳实践的普遍共识是什么?这两种选择似乎都不是特别优雅。有没有更好的方法来实现同样的目标?
是的。有各种设置行为的库,例如 bootstrap,这些可以包含在 require 语句中但不包含在函数参数中。也可以这样写 require.js shorthand:
var http = require('plugins/http');
require('somelibrary');
function viewModel() {
...
}
如果插件 return 是一个引用(如 plugins\http
情况),您只需要一个分配的变量。
一些插件将自身附加到其他对象或插件,向其他对象添加功能或属性,因此它不会 return 任何引用(如您示例中的 someLibrary
)。所以你不需要一个变量。
我个人的做法是define(...)
中的插件根据是否需要分配变量来排序,不需要变量的插件,将稍后定义,那些需要变量的将先定义。这是为了与 javascript 的 function
定义方式保持一致,您始终将可选参数放在右侧。
我需要在我的 javascript 文件中为我的一个页面使用一个库。我发现我可以使用:
define(["plugins/http", "someLibrary"], function (http, foo) {
/* code: never using "foo", but using methods from someLibrary */
}
最初,我期望 foo 有一个值,因为所有其他示例(如 http)都有参数值,但这显然不是 someLibrary 的工作方式。将 foo 作为参数似乎没有用,所以我将其删除以查看它是否仍然有效,并且确实有效。
这个参数关掉可以吗?在这种情况下,Durandal/Require.js 最佳实践的普遍共识是什么?这两种选择似乎都不是特别优雅。有没有更好的方法来实现同样的目标?
是的。有各种设置行为的库,例如 bootstrap,这些可以包含在 require 语句中但不包含在函数参数中。也可以这样写 require.js shorthand:
var http = require('plugins/http');
require('somelibrary');
function viewModel() {
...
}
如果插件 return 是一个引用(如 plugins\http
情况),您只需要一个分配的变量。
一些插件将自身附加到其他对象或插件,向其他对象添加功能或属性,因此它不会 return 任何引用(如您示例中的 someLibrary
)。所以你不需要一个变量。
我个人的做法是define(...)
中的插件根据是否需要分配变量来排序,不需要变量的插件,将稍后定义,那些需要变量的将先定义。这是为了与 javascript 的 function
定义方式保持一致,您始终将可选参数放在右侧。