如何使用ionic和angularjs在后台为对象中的过滤器提供变量

如何使用ionic和angularjs在后台为对象中的过滤器提供变量,angularjs,ionic-framework,backand,Angularjs,Ionic Framework,Backand,我需要在服务中对象的值字段的筛选器中传递变量 这是我的密码: .service('LoginService', function (Backand) { var email=""; service.getUsername = function(){ email=Backand.user.getUsername(); return email; }; service.getUserData=function(){ return Backand.object.get

我需要在服务中对象的值字段的筛选器中传递变量

这是我的密码:

.service('LoginService', function (Backand) {

var email="";

  service.getUsername = function(){
    email=Backand.user.getUsername();
    return email; 
};

service.getUserData=function(){
   return Backand.object.getList("users", {
    "pageSize": 20,
    "pageNumber": 1,
    "filter": [
      {
        "fieldName": "email",
        "operator": "equals",
        "value":email
      }
            ],
   "sort": []
      })
  };
)}
在上面的代码中,我将电子邮件存储在email变量中,并希望传递
它位于service.getUserData()的值字段中,但不能接受它。我怎么才能知道呢?

正如devqon提到的,确保变量“email”在进行此调用时实际具有值。Backand SDK为所有方法调用返回一个承诺,这意味着您需要使用GetUsername()函数成功/失败的处理程序更新上面的代码,如下所示:

Backand.user.getUsername().then(function(data){email = data.email;});

这定义了一个简单的成功处理程序,它将用调用的结果填充电子邮件变量。然后,您应该能够毫无问题地将其传递回API,但您可能需要重新构造代码,以说明getUsername调用的异步性质-在承诺得到解决之前,返回getUsername()的结果以响应对该方法的调用是不起作用的,现在你只是在回报你的承诺。出于安全原因,我们的文档中有更多信息,我不建议在客户端提供此类服务。某些恶意用户可能会更改您的代码并获取其他用户的详细信息

使用Backand,您还可以在服务器端进行筛选。
您不需要传递电子邮件变量;Backand有一个变量,提供登录用户的电子邮件。

确保在执行
服务之前调用(并完成)您的
getUsername
。getUserData
,以便填充您的
电子邮件
变量