angular.js - AngularJS中对Controller与Service进行分层设计与编码
黄舟
黄舟 2017-05-15 17:08:29
0
1
539

最近看到说在controller中进行数据处理不是很合适,所以就去学习了Controller与Service进行分层设计与编码,参考了http://www.jianshu.com/p/1e1a...,但是我在使用过程遇到的一个问题就是在Service层处理通讯回调,将业务回调传递给Controller层这种方式调用$http服务的时候,如何传递请求参数呢?代码如下:

angular.module('demo')
.service('myService',['$http','$q',function($http,$q){
return {
    getData:function(){
        var deferred = $q.defer();
        var promise = $http.get("xxx");
         promise.then(
                  // 通讯成功的处理
                  function(answer){
                    //在这里可以对返回的数据集做一定的处理,再交由controller进行处理
                    answer.status = true;
                    deferred.resolve(answer);
                  },
                  // 通讯失败的处理
                  function(error){
                    // 可以先对失败的数据集做处理,再交由controller进行处理
                    error.status = false;
                    deferred.reject(error);
                  });
                //返回promise对象,交由controller继续处理成功、失败的业务回调
        return deferred.promise;
    }
}
}]);
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(1)
PHPzhong

getData는 콜백 함수를 매개변수로 받을 수 있습니다. 이 콜백 함수의 매개변수는 전달하려는 데이터입니다. 그런 다음 서비스의 getData 메서드를 호출할 때 서비스를 컨트롤러에 삽입합니다. 콜백 함수를 작성하여 getData 메소드에 전달하면 됩니다. getData에서 요청된 데이터를 처리한 후 수신 콜백 메소드를 직접 호출하고 처리된 매개변수를 전달하기만 하면 됩니다.


으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿