【发布时间】:2016-10-26 17:54:32
【问题描述】:
所以基本上我使用 Angular 来访问一个 json 文件,我在其中搜索具有相应电子邮件的用户。然后我需要找到这个用户并从服务模块中返回它。然后我需要返回的结果是一个承诺。到目前为止,这是我所拥有的……过去几个小时没有任何进展
getUser: function(authenticationName) {
if(!(_.str.contains(authenticationName, "@"))) {
return resource.get({userName: authenticationName}).$promise;
}
else if(_.str.contains(authenticationName, "@")) {
resource.query().$promise.then(function(data) {
var emailsArray = [],
userNamesArray = [];
_.map(data, function(user){ emailsArray.push(user.email); });
_.map(data, function(user){ userNamesArray.push(user.userName); });
if(_.indexOf(emailsArray, authenticationName) !== -1) {
var indexOfUser = _.indexOf(emailsArray, authenticationName),
user = userNamesArray[indexOfUser];
return resource.get({userName: user});
}
});
}
},
还有角度控制器,我得到“无法调用未定义的方法”:
userData.getUser(user.authenticationName)
.then(function(data) {
到目前为止一切都很好,如果我可以从这里返回用户然后调用 resource.get() 方法就一切都很好
return resource.get({userName: user});
【问题讨论】:
-
你忘了resource.query(..).$promise.then之前的return? (然后在返回的 if 之后抛出一个 throw)
-
that 是什么意思?
-
是的,但是如果你不输入
if,你也应该做一些有意义的事情,例如——抛出一个错误来表明一个应用程序问题。 -
好的,但是在另一个模块的 .then 函数中,结果是未定义的,所以整个返回未定义。有什么想法吗?
-
console.log("通过");不从这里登录,如果这将有助于 resource.query().$promise.then(function(data) {
标签: javascript jquery angularjs underscore.js promise