控制器
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中,配置文件控制器中的回调仅执行一次