Angular JS success callback

后端 未结 3 1779
萌比男神i
萌比男神i 2021-01-28 08:09

I m reaching out to you to get assistance on the $promise issue with AngularJS.

Here is the documentation information on $resource and it will be applicable to $http as

3条回答
  •  执念已碎
    2021-01-28 08:39

    With $resource you define the API route and the parameters the API needs in order to process the request. Then, later you will need to supply the $resource with data and perform an action (get, save, query, remove, delete).

    I personally prefer to work with $http as it's pretty cut and dry. The down-side is you can't pre-define the routes and parameters across your app.

    Here's a pen that shows you both $resource and $http requests.

    http://codepen.io/kenhowardpdx/pen/BNzXeE

    angular.module('app', ['ngResource']);
    
    MyService.$inject = ['$http', '$resource'];
    function MyService ($http, $resource) {
        var _this = this;
    
        var Search = $resource('http://www.omdbapi.com/?tomatoes=true&plot=full&t=:searchTerm', {searchTerm:'@searchTerm'});
    
        _this.httpSearch = function (searchTerm) {
            return $http.get('http://www.omdbapi.com/?tomatoes=true&plot=full&t=' + searchTerm);
        };
    
        _this.resourceSearch = function (searchTerm) {
            return Search.get({searchTerm: searchTerm}).$promise;
        }
    }
    
    angular.module('app').service('MyService', MyService);
    
    MyController.$inject = ['MyService'];
    function MyController (MyService) {
        var _this = this;
    
        _this.type = 'http';
    
        _this.searchFilms = function () {
            if (_this.type === 'http') {
                MyService.httpSearch(_this.searchTerm).then(function(_response) {
                   _this.results = _response.data; 
                });
            } else {
                MyService.resourceSearch(_this.searchTerm).then(function(_response) {
                   _this.results = _response; 
                });
            }
        }
    }
    
    angular.module('app').controller('MyController', MyController);`
    

提交回复
热议问题