我正在使用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)传入。

09-29 20:18