如何使用ionic和angularjs在后台为对象中的过滤器提供变量
我需要在服务中对象的值字段的筛选器中传递变量 这是我的密码:如何使用ionic和angularjs在后台为对象中的过滤器提供变量,angularjs,ionic-framework,backand,Angularjs,Ionic Framework,Backand,我需要在服务中对象的值字段的筛选器中传递变量 这是我的密码: .service('LoginService', function (Backand) { var email=""; service.getUsername = function(){ email=Backand.user.getUsername(); return email; }; service.getUserData=function(){ return Backand.object.get
.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": []
})
};
)}
在上面的代码中,我将电子邮件存储在email变量中,并希望传递
它位于service.getUserData()的值字段中,但不能接受它。我怎么才能知道呢?正如devqon提到的,确保变量“email”在进行此调用时实际具有值。Backand SDK为所有方法调用返回一个承诺,这意味着您需要使用GetUsername()函数成功/失败的处理程序更新上面的代码,如下所示:
Backand.user.getUsername().then(function(data){email = data.email;});
这定义了一个简单的成功处理程序,它将用调用的结果填充电子邮件变量。然后,您应该能够毫无问题地将其传递回API,但您可能需要重新构造代码,以说明getUsername调用的异步性质-在承诺得到解决之前,返回getUsername()的结果以响应对该方法的调用是不起作用的,现在你只是在回报你的承诺。出于安全原因,我们的文档中有更多信息,我不建议在客户端提供此类服务。某些恶意用户可能会更改您的代码并获取其他用户的详细信息 使用Backand,您还可以在服务器端进行筛选。
您不需要传递电子邮件变量;Backand有一个变量,提供登录用户的电子邮件。确保在执行
服务之前调用(并完成)您的getUsername
。getUserData
,以便填充您的电子邮件
变量