我需要在服务中对象的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()的值字段中,但它不能接受它。我怎么能搞清楚?
答案 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有一个变量,用于提供已登录用户的电子邮件。