【问题标题】:How to give variable to filter in object in backand using ionic and angularjs如何使用 ionic 和 angularjs 为对象中的对象提供变量过滤
【发布时间】:2017-08-03 08:01:12
【问题描述】:

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

这是我的代码:

.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() 的 value 字段中,但它不能接受它。怎么解决?

【问题讨论】:

  • 确保在执行service.getUserData 之前调用(并完成)您的getUsername,以便填充您的email 变量

标签: angularjs ionic-framework backand


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-28
      • 1970-01-01
      • 2017-07-20
      • 2012-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多