2015-04-01 105 views
0
 var doLogin = function(username, password) { 
      var request = $http({ 
       method: "get", 
       url: 'api/login', 
       params: {}, 
       data: {} 
      }); 

      return request.then(success, error); 
     } 

     function success(response, username) { ... } 

如果我删除用户名作为success()方法的参数,则响应将传递给success(),并且一切正常。对于这个特定的实例,我还需要将用户名(传递给doLogin)传递给http成功回调函数。但是,承诺仅涉及功能。如何将用户名传递给fn success()?将addl参数传递给angularjs承诺

+0

这看起来很奇怪我。 DoLogin功能不应该通过服务暴露并简单地返回一个承诺?在控制器内,您的所有功能都可以通过用户名关闭或在承诺链中提供。 – mccainz 2015-04-01 18:45:52

+0

我正在做的东西来存储数据的服务(而不是rootScope),然后返回另一个承诺与数据包裹在一个对象 – NewToMS 2015-04-01 19:43:48

回答

2

你可以传递一个匿名函数作为成功回调:

return request.then(function(data) { 
    success(data, username); 
}, error); 
+0

很好,谢谢。看起来不错。 – NewToMS 2015-04-01 19:44:23