簡體   English   中英

如何啟動 Angular 服務(發布、獲取和刪除)

[英]how to start angular service (post, get and delete)

我使用 editor.swagger 生成了一個代碼,我想為該代碼編寫一個帶有角度的 GUI。 由於我是 angular 新手,我不太了解如何開始編程。 我首先決定創建 3 個文件:index.html、index.js 和 service.js。

這是我的代碼的一部分:

我不知道這是不是一個好的開始。 但問題是我不知道我應該如何處理 POST 和 DELETE。 你能幫我嗎?

您可以在 Angluar JS(POST,GET,PUT,DELETE) 中執行標准的 4 種方法。 要在 angular 中使用這些,您必須使用 angular 提供的 $http 服務。 要了解有關它的更多信息,請查看他們的文檔: https : //docs.angularjs.org/api/ng/service/$http

來自Angular $http 文檔

完整的快捷方法列表:

$http.get
$http.head
$http.post
$http.put
$http.delete
$http.jsonp
$http.patch

您也可以使用$http服務中的方法參數。 所以$http(method: 'DELETE', ...)

var app = angular.module('app');

app.service('apiService', ['$http', function($http){

    this.get = function(){
        return $http.get(URL);
    };

    this.delete = function(id){
        return $http.delete(URL, id);
    }

    this.post = function(data){
        return $http.post(URL, data);
    }

}]);

app.controller('controller', ['$scope', 'apiService', function($scope, apiService){

     var getData = apiService.get().success(function(){

     });

}]);

您可以使用 $resource 並將其作為服務返回。

app.factory('factoryResource', ['$resource', function($resource) {
var resource = {
    getResource: function(context) {
        var rsc = $resource(context, {}, {'update': {method: 'PUT'}});

        return rsc;
    }
};

return resource; }])

在您的控制器中,您應該注入新創建的服務,如下所示:

app.controller('myCtrl', function($scope, factoryResource) {
    $scope.resource = factoryResource.getResource('http://localhost:8080/api/v1/projects');
    $scope.resource.save(object, successCallback, errorCallback); //post
    $scope.resource.query(successCallback, errorCallback); //get all
    $scope.resource.get({id: object.id}, successCallback, errorCallback); //get a specific object
    $scope.resource.delete({id: object.id}, successCallback, errorCallback); //delete
}

希望這可以幫助;

基本上我們有 4 種 REST 操作方法

  1. Create (POST)-- 創建一個新用戶(舉個例子,可以是任何東西)
  2. 讀取 (GET) -- 獲取所有用戶
  3. 更新 (PUT) -- 更新用戶的屬性
  4. 刪除 (DELETE) -- 刪除用戶 如果您需要進一步說明,請告訴我。

在角度使用服務中,您可以做到這一點。

var app = angular.module('app', []);
app.factory('UserService', function($http){
    var user = {};
    user.post = function(data){
        return $http.post('url', data);
    }
    user.get = function(){
        return $http.get('url');
    }
    user.delete = function(id){
        return $http.delete('url');
    }
     user.update = function(id, data){
        return $http.put('url', data);
    }
    return user
});

app.controller('Controller', function('UserService'){
    // Get
    UserService.get().success(function(){

    });
    UserService.post(data).success(function(){

    });
    UserService.delete(id).success(function(){

    });
    UserService.get(id, data).success(function(){

    });

})

這可以通過$resource輕松完成,如果您的 URL 是正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM