【发布时间】:2016-05-08 14:42:28
【问题描述】:
我正在使用meteorjs,有所谓的publications 和meteor methods。在其中,您可以访问一个变量 this.connection,该变量包含有关您与特定用户的所有 http 标头和连接的信息,例如他们访问您网站的主机名。
由于我想让我的应用程序像 slack 一样多域,我现在需要挂钩数据库方法以将返回的数据集限制为正确的主机名。
问题:此数据仅在 poblication 或 meteor 方法内部可用。
有没有办法在不改变我所有模型函数的签名的情况下获取调用方法的this?
例子:
mySpecialMethodWhereThisIsRight = function(param1) {
console.log(this.connection.httpHeaders.host) //Prints out the servername
modelname.mySelfMadeFunction(someData);
}
modelname = {
mySelfMadeFunction: function (data) {
console.log(this.connection.httpHeaders.host) //prints nothing
# some voodo
console.log(this.connection.httpHeaders.host) //Prints out the hostname
}
}
我现在正在寻找那个“巫毒”,否则我将不得不重写很多函数以及它们被调用的地方。 (没那么容易,因为没有真正可靠的 CoffeeScript 重构工具)
【问题讨论】:
-
你可以使用
arguments.caller,但它已经过时了。 -
问题是我现在不能轻易传递更多参数,因为我需要重构大约 30k 行代码
标签: javascript meteor coffeescript