我正在使用Mixpanel和JQL尝试从.filter()
函数中的全局范围访问变量,因此我只能查询所需的记录:
var selectedVal = 'foo';
MP.api.jql(function main() {
return People()
.filter(function(user) {
// Compare with 'selectedVal'
return user.properties["user-title"] == selectedVal;
})
;
}, selectedVal).done(function(results) {
// ...
});
错误:
{“请求”:“ / api / 2.0 / jql /”,“错误”:“未捕获的异常ReferenceError:未定义selectedVal \ n返回user.properties [\“用户标题\”] == selectedVal; \ n ^ \ n \ n堆栈跟踪:\ nReferenceError:未定义selectedVal \ n在:6:70 \ n“}
如果有人能指出我正确的方向,那就太好了。谢谢
编辑:
目前,我正在使用一种变通方法,即获取所有People实体并随后进行过滤。这根本不是最佳选择,因此仍在寻找一种方法来根据People实体的属性条件获得结果集。
最佳答案
使用bind
。您可以在MP.api.jql
块之外声明该函数,并在该jql
函数内部声明该函数,将其作为参数main.bind(null,whatever)
传入。