[英]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.