【问题标题】:Pass addl parameter to angularjs promise将 addl 参数传递给 angularjs 承诺
【发布时间】:2015-06-06 10:56:45
【问题描述】:
        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 成功回调函数。然而,promise 只引用函数。如何将用户名传递给 fn success()?

【问题讨论】:

  • 这对我来说很奇怪。 doLogin 函数不应该通过服务公开并简单地返回一个承诺吗?然后,在控制器中,您的所有功能都可以关闭用户名或使其在承诺链中可用。
  • 我正在做一些事情来将数据存储在服务中(而不是 rootScope),然后返回另一个带有包装在对象中的数据的承诺

标签: javascript angularjs angular-promise angularjs-http


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    相关资源
    最近更新 更多