角度服务回调只执行一次

时间:2015-11-08 01:13:38

标签: javascript angularjs

控制器

angular.module('eateryApp')
        .controller('RestaurantsController',RestaurantsController);

    RestaurantsController.$inject=['yelp','$routeParams'];

    function RestaurantsController(yelp,$routeParams) {

        var rstrntsCtrl=this;
        rstrntsCtrl.restaurants={};
        rstrntsCtrl.inputs=$routeParams.term;
        yelp.retrive(rstrntsCtrl.inputs,function(data) {
            alert("wfw");
            rstrntsCtrl.restaurants=data.businesses;
        });
    }

服务

angular.module('eateryApp')
        .factory('yelp',yelp);

    yelp.$inject=['$http'];
    function yelp($http) {

        var factory={
            retrive:retrive
        };

        return factory;


        function retrive(inputs,callback){

            var method = 'GET';
            var url = 'http://api.yelp.com/v2/search';
            var params = {
                    callback: 'angular.callbacks._0',
                };

            $http.jsonp(url, {params: params}).success(callback);
        }
    }

我为特定页面编写了这个控制器和服务,让我们说“/ page”。当我转到那个页面(“/ page”)时,一切正常,回调就会执行。但是当我在“/ page”之后转到“/ index”并再次回到“/ page”时,ajax调用会触发,但控制器中的回调不会被执行。有人可以发现错误

有类似例子的plnkr http://plnkr.co/edit/fswywkpsH6xl5XU0YplK?p=preview

在此plnkr中,配置文件控制器中的回调仅执行一次

0 个答案:

没有答案