簡體   English   中英

在Angularjs中從$ http轉換為$ resource

[英]Converting from $http to $resource in Angularjs

var customersApp = angular.module('customersApp', ['ngGrid']);
var url = 'api/Customer';

//the factory object for the webAPI call.
customersApp.factory('customerRepository', function ($http) {
    return {
        insertUser: function (callback,user) {
            var user = { "id": user.id, "city": user.city, "name": user.name, "address": user.address, "contactNo": user.contactNo, "emailId": user.emailId };
            $http.post(url, user).success(callback);
        }

});

控制器是

customersApp.controller('customerCtrl', function ($scope, customerRepository) {
        customerRepository.insertUser(function () {
                alert('customer inserted successfully');
            }, $scope.New)
    });

我想做的就是像這樣將工廠的$ http更改為$ resource

customersApp.factory('customerRepository', function($resource){
return
 $resource(url, { id: '@id' }, { update: { method: 'POST', } })
}

我的問題是,當我從$ http更改為$ resource時,應將工廠插入用戶中使用的“用戶”數據放在哪里。

請在工廠的$ resource中讓我知道,我該在哪里插入“用戶”數據。 謝謝

您可以執行以下操作:

資源工廠創建對象並將對象實例數據用作POST

customersApp.factory("customerRepository", function($resource) {
    return $resource("http://someUrl", {}, {
        update: {method : "POST"}
    });
});

而在您的控制器中

$scope.data = {}; // your data initialization stuff
$scope.data.someDataKey = 'someDataValue'; // add your default data

var customerrepository = new customerRepository($scope.data);
customerrepository.$update();

這是一個例子

customersApp.controller('customerCtrl', function ($scope, $resource) {
    var customerRepository = $resource(url)
    customerRepository.save($scope.New, function () {
            alert('customer inserted successfully');
        })
});

這是使用$ resouce的默認資源操作save ,定義在這里

non-GET "class" actions: Resource.action([parameters], postData, [success], [error])
non-GET instance actions: instance.$action([parameters], [success], [error])

如果使用實例操作,則在通過使用new創建資源時傳遞發布數據

暫無
暫無

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

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