var process_request_rule = [
{
"name": "rule-name",
"condition": Meteor.bindEnvironment(function (R) {
R.when(this.request.type == 'some-type');
})
}];
在上面的代码中, this.request 未定义为此指向Meteor对象而不是函数对象。经过研究才知道使用箭头功能可能会解决问题。尝试使用如下所示。
var process_request_rule = [
{
"name": "rule-name",
"condition": Meteor.bindEnvironment((R) => {
R.when(this.request.type == 'some-type');
})
}];
仍然没有运气,请帮我绑定这个对象
答案 0 :(得分:1)
您可以使用Meteor.bindEnvironment
删除,也可以只使用传递给condition
回调的第二个参数 - 它与假定的this
相同。 https://github.com/mithunsatheesh/node-rules/blob/master/lib/node-rules.js#L94
这样的事情:
var process_request_rule = [
{
"name": "rule-name",
"condition": Meteor.bindEnvironment(function(R, session) {
R.when(session.request.type == 'some-type');
})
}];