【发布时间】:2016-05-28 20:22:41
【问题描述】:
在迁移到 requirejs 时,我遇到了一个我似乎无法找到答案的问题。
问题是我的嵌套函数无法访问传递给 requirejs 回调的参数。
例如:
define(['knockout', 'knockoutmapping', 'other'], function(ko, mapping, other) {
var Something = function() {
var self = this;
self.items = ko.observableArray([]);
self.doSomeStuff = function(data) {
// I would think I would still be able to access
// parameters ko, mapping and other
// trouble is, I cannot. I only have
// a valid 1st parameter, "ko".
var d = ko.toJSON(self.items()); // this works fine
self.items(mapping.fromJS(data));// this does not work (undefined)
// do not have access to "other" either.
};
};
return {
Something: Something,
};
});
对此的任何帮助将不胜感激。我知道我可以将这些放入回调中的变量中,但这对我来说似乎不是正确的方法。
提前谢谢你。
【问题讨论】:
-
很好,但这只是展示我遇到的问题的示例代码。我在实际代码中有匹配的引号。谢谢你指出这一点。我已经在这里修好了。
-
问题不在于嵌套函数的使用。嵌套函数中的
mapping与外部的mapping相同。 (您可以调用console.log来向您保证这一点,或者使用调试器。)如果确实没有定义mapping,那么问题就出在其他地方。您对错误的描述也有点模糊。请在您的问题中逐字包含它,包括堆栈跟踪。 -
不应该是
require而不是define吗?
标签: javascript knockout.js requirejs