如何使用 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 有一个变量,提供登录用户的电子邮件。
我需要在服务对象的值字段过滤器中传递变量。
这是我的代码:
.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 有一个变量,提供登录用户的电子邮件。