如何使用 ionic 和 angularjs 为后端的对象提供变量以进行过滤

How to give variable to filter in object in backand using ionic and angularjs

我需要在服务对象的值字段过滤器中传递变量。

这是我的代码:

.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": []
      })
  };
)}

在上面的代码中,我将电子邮件存储在电子邮件变量中,我想通过 它在 service.getUserData() 的值字段中,但它不能接受它。我该如何解决?

正如 devqon 提到的,确保变量 "email" 在进行此调用时确实具有值。 Backand SDK returns 对所有方法调用的承诺,这意味着您需要使用 GetUsername() 函数的 success/failure 的处理程序更新上面的代码,如下所示:

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

这定义了一个简单的成功处理程序,它将用调用的结果填充电子邮件变量。然后您应该能够毫无问题地将它传回 API,但您可能需要重组代码以解决 getUsername 调用的异步性质 - 返回 GetUsername() 的结果以响应在 promise 得到解决之前,对此方法的调用将不起作用,此时您只返回 promise 本身。我们的文档中有更多信息 http://docs.backand.com/?javascript#sdk-methods

出于安全原因,我不建议在客户端提供此类服务。某些恶意用户可能能够更改您的代码并获取其他用户的详细信息。

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