angular.js - angularjs $q promise同步传参依赖问题
我想大声告诉你
我想大声告诉你 2017-05-15 16:59:02
[AngularJS讨论组]
app.factory('documentListFactory',['$http','$q',function($http,$q){
        //申明一个延迟
        var deferred = $q.defer();
        $http.get('http://3.cs/index.php?_json=1&_content=1').success(function(response){
            deferred.resolve(response);
        }).error(function(response){
            deferred.reject(response);
        });
        // 返回承诺,这里并不是最终数据,而是访问最终数据的API 
        return deferred.promise;   
    }]);

app.factory('documentTagsFactory',['$http','$q',function($http,$q){
        //申明一个延迟
        return {
            query(ids)
            {
                var deferred = $q.defer();
                $http.post('http://3.cs/index.php/tags/assoc-tags',{
                    'id':ids ? ids : [1,23],
                    'model':'Document'
                }).success(function(response){
                    deferred.resolve(response);
                }).error(function(response){
                    deferred.reject(response);
                });
                return deferred.promise;
            }
        }
    }]);

app.controller('listController',['$scope','$http','$q','documentListFactory','documentTagsFactory',function($scope,$http,$q,documentListFactory,documentTagsFactory){
        
        var documentList = {};
        
        /*
            code.....
        */
        //var promise = $q.all([documentListFactory,documentTagsFactory.query(documentListFactory)]);
        
        promise.then(function(data){
        //console.log(data);
            //console.log(documentList);
            //console.log(3);
        });
        
        
    }]);

如上代码,有两个Facotry我都是用deferred延迟,使用promise来进行类似于同步加载的,
但现在有个问题
我documentTagsFactory里面的方法query(ids)是需要一个参数进行传递的,而这个参数依赖于documentListFactory的结果,
angularjs新手,这里我却不知道怎样实现了,使用$q.all确实实现的多个同步,但是却还是没办法传递参数,不知大家有什么方法,
PS:本人非常不喜欢类似于jquery里面的

$.get(function(){
    $.get(function(){
    })
})

promise.then(function(){
    promise2.then(function(){
    })
})

这种嵌套。
要的是类似于同步,并且非嵌套的方法,谢谢

我想大声告诉你
我想大声告诉你

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号