【问题标题】:callback function not called in angularjsangularjs中未调用回调函数
【发布时间】:2016-01-07 14:58:48
【问题描述】:

我在angularjs中写了一个回调方法。但不知何故,它没有被调用。我的代码如下。

链接功能:

link: function(scope, element, attrs) {
            scope.getContent = function(itemId) {
                getTocService.getArtData(itemId, function(data){
                    var art = data;
                    alert(art);
                });
            }
element.append("<collection collection='member.tocItem'></collection>");    
                $compile(element.contents())(scope)
            }

服务:

app.service( "getTocService", 函数($http,$q){ 返回({

            getArtData: getArtData
        });

        function getToc(bookIdvar) {
            var request = $http({
                method: "post",
                url: "http://10.132.241.41:8082/apdpoc/services/ApdBookService/getTOC",
                params: {
                    action: "post"
                },
                data: {
                    getTOCCriteria:{
                    bookId: bookIdvar
                    }
                }
            });
            return( request.then(handleSuccess,handleError));
        }

        function getArtData(itemId, cb) {
            var request = $http({
                method: "post",
                url: "http://10.132.241.41:8082/apdpoc/services/ApdBookService/getArticle",
                params: {
                    action: "post"
                },
                data: {
                    getArticleCriteria:{
                    articleId: itemId,
                    locale: "en_US"
                    }
                }
            });
            return(request.then(handleSuccess,handleError), cb);
        }
        function handleSuccess(response){
            return (response.data);
        }

        function handleError( response ) {

            if (
                ! angular.isObject(response.data) ||
                ! response.data.message
                ) {
                return($q.reject("An unknown error occurred."));
            }
            return($q.reject(response.data.message));
        }

    }

);

根据我对 angularJs 的一点了解, 回调方法应该执行

var 艺术 = 数据; 警报(艺术);

这些行。但控制并没有到来。有人可以告诉我这里有什么问题吗?

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    你应该更新

    return(request.then(handleSuccess,handleError), cb);
    

    return(request.then(cb,handleError));
    

    【讨论】:

    • 非常感谢。这是工作。你能告诉我是否可以在链接函数中为 $scope 变量赋值吗?
    • 很高兴听到这个消息。是的,你可以这样做。
    猜你喜欢
    • 2019-06-30
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多