對於AngularJS來說,這是非常新穎的事情,我發現自己需要能夠在同一服務中託管所有常見的CRUD操作 - 在我的情況中, 「requestsRepository」:AngularJS:如何在同一服務中正確託管所有CRUD操作
frontEndApp.factory('requestsRepository', function ($http) {
var postServiceRequest = function (ServiceRequest) {
$http({
url: 'http://localhost:8080/api/ServiceRequests',
method: "POST",
data: ServiceRequest,
headers: { 'Content-Type': 'application/json' }
}).success(function (data, status, headers, config) {
//$scope.persons = data; // assign $scope.persons here as promise is resolved here
console.log("postServiceRequest Status: " + status);
}).error(function (data, status, headers, config) {
//$scope.status = status;
console.log("postServiceRequest FAILURE: " + status + " ServiceRequest: " + ServiceRequest);
});
};
var getServiceRequests = function() {
$http({
url: 'http://localhost:8080/api/ServiceRequests',
method: "GET"
}).success(function (data, status, headers, config) {
$scope.requests = data;
console.log("getServiceRequests Status: " + status);
}).error(function (data, status, headers, config) {
//$scope.status = status;
console.log("getServiceRequests FAILURE: " + status + " ServiceRequest: " + ServiceRequest);
});
};
return { postServiceRequest: postServiceRequest, getServiceRequests: getServiceRequests };
});
到目前爲止,我很難一起託管postServiceRequest和getServiceRequests。
這裏是我的控制器,這使得以requestsRepository.getServiceRequests呼叫:
angular.module('frontEndApp').controller('ViewExistingRequestsCtrl', ['$scope',
function ($scope, requestsRepository) {
$scope.requests = requestsRepository.getServiceRequests;
}]);
當這個調用時,我得到:在新的(http://myhost.mydomain.com:9221/controllers/ViewExistingRequestsCtrl.js:3:43)
無法讀取的不確定 財產「getServiceRequests」我的猜測是,我沒有在我的服務中正確公開我的兩個函數 - 我只是不知道如何正確執行,因此同一服務中的每個函數都可以從同一應用程序中的任何控制器訪問。
FYI:關於你的第二個代碼塊的第3行,它不是getServiceRequests,它只是複製參考該函數的調用。 '()'丟失。 – Sylvain