【问题标题】:How do I pass a call back to angular resource save method如何将回调传递给角度资源保存方法
【发布时间】:2016-02-01 14:29:35
【问题描述】:

我正在尝试实现这样的登录角度资源

 var data = new Login({               

            username: user.userName,
            password: user.password
       }) 
 data.$save()

假设登录成功时返回一些数据给我,否则返回错误。

我想要的是像这样的 angular http post 方法这样的回调。

    data = JSON.stringify({
            username: user.userName,
            password: user.password
                      })
    $http.post('API/sigin',data,

            {
                headers: {
                    'Content-Type': 'application/json'
                }
            }

 )
   .success(
       function(response){

     // success callback

      console.log("doing sign in");

     }, 
       function(error){


       // failure callback

      return error


      }
        )

当 http post 失败时,我切换到资源。它只会永远挂起,稍后会返回错误。

我正在使用 Angular 1.4.3。

任何帮助,信息将不胜感激

【问题讨论】:

    标签: javascript angularjs ionic-framework


    【解决方案1】:

    ..factory.js

    //Create a factory for the Login API
    angular.module(...)
    .factory('LoginEntity', ['$resource', function ($resource) {
        return $resource(
            'API/sigin',
            {
                save: {method: 'POST'},
                update: {method: 'PUT'}
            }
        );
    }])
    

    ...controller.js

    angular.module(...)
           .controller('xxxController', ['LoginEntity', function(LoginEntity){
        //in Controller add LoginEntity dependency
    
        LoginEntity.save({
                                username: user.userName,
                                password: user.password
                            },
                            function (response) {
                                //success callback
                            },
                            function () {
                                //error callback
                                //usually do some logging stuff here
                            });
    
    }]);
    

    【讨论】:

    • 谢谢,当我将状态传递给成功回调时,它似乎正在登录,但是当我要求它返回响应时,它永远挂起
    • @huan feng 又是 LoggerService 是什么意思?你是说 LoginEntity.error 吗?
    • 你可以忽略 LoggerService 行,我写在那里是因为通常我们会在 api 调用出现错误时进行一些日志记录。
    • 你的意思是向成功回调传递一个状态,你是怎么写代码的?
    • 我的意思是将状态提供程序重定向到经过身份验证的用户的应用程序页面。例如 $state.go('app');但我希望它返回响应,因为 API 使用登录用户的信息进行响应。好的,对于 loggerService,我已经用我自己的自定义错误消息替换它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 2015-02-26
    相关资源
    最近更新 更多