我有一个控制器类MovieSearchCtrl
,在这个类中是一个函数:
returnMovies(query): any {
return MovieSeat.MovieSearchService.getMovies(query);
}
我还有一个服务类MovieSearchService
,在这个类中是一个函数:
getMovies(query) {
let baseUrl = "http://api.themoviedb.org/3/";
return this.$resource(baseUrl + "search/movie?api_key=a8f7039633f2065942cd8a28d7cadad4&query=" + query + "&callback=angular.callbacks._0");
}
在我要返回的the constructor of the MovieSearchCtrl
课程中:
this.results = this.returnMovies(query);
如何将getMovies()
函数的返回数据用于MovieSearchCtrl
类?
答案 0 :(得分:1)
将MovieSearchService注入MovieSearchCtrl然后调用getMovies() 像这样:
.controller('MovieSearchCtrl ',function(MovieSearchService, $scope){
$scope.movies =[];
$scope.search={}; //ng-model for your input
MovieSearchService.getMovies($scope.search.query).then(function(res){
$scope.movies = res.data;
});
});
答案 1 :(得分:0)
.factory('MoviesAPI', function($resource, apiHost) {
return $resource(apiHost + '/movies/:Id');
});
为了能够在控制器中使用您的服务,您必须注入它。
.controller('myController', function($routeParams,MoviesAPI) {
var vm = this;
vm.movies = [];
var myMoviesResource = MoviesAPI.query();
vm.getMovies = function (){
myMoviesResource.$promise
.then(function(response) {
vm.movies = response;
}, function(error) {
// doSomething
});
};
};
});
我希望这会有所帮助
答案 2 :(得分:0)
两个步骤。
如果它位于单独的模块中,请将其作为模块定义中的依赖项
angular.module('MovieSearchCtrl', ['MovieSearchService']);
将其注入您的控制器定义
MovieSearchCtrl(MovieSearchService){
this.movies = MovieSearchService.getMovies():
}
angular.controller('MovieSearchCtrl', MovieSearchCtrl);