如何使用ionic和angularjs为后面的对象中的变量提供变量

时间:2017-03-13 10:27:25

标签: angularjs ionic-framework backand

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

这是我的代码:

.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()的值字段中,但它不能接受它。我怎么能搞清楚?

2 个答案:

答案 0 :(得分:0)

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

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

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

的文档中提供了更多信息

答案 1 :(得分:0)

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

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