?????????е?????????????Service
???????Web??????????????????????Щ??????????? ???????????????????Щ?????????? ???????????? ???????? ??Щ????????????????? ???????????????????????????????????????? ??????????????????е?????Щ????.?????????ζ?????????????????????????????Щ???? ????????????????????????????? ?????Щ???????????????????????е?? ?????????????????????μ?? ???????????????????Щ??????????????????????.??????????????????Щ??????????????????????????? ????????????????serviceLoadedFromExternal?? ?????????API????makeServiceCall?? ????????????API?? ?????????к???????????????????(????????????????????????????????)?? ??????????????????????????angular service?? ???????????????????????滻?????mock???? ?????????mock???????????????????????.???????????δ???:
???????????????????
????angular.module(“TheNG”?? [])
????.controller(“AController”?? function ($scope) {
????$scope.someAction = function () {
????// handle some logic here
????serviceLoadedFromExternal.makeServiceCall();
????};
????});
??????÷????service???????????
????angular.module(“TheNG”?? [])
????.factory(“wrappedService”?? function () {
????return {
????makeServiceCall: function () {
????serviceLoadedFromExternal.makeServiceCall();
????}
????};
????})
????.controller(“AController”?? function ($scope?? wrappedService) {
????$scope.someAction = function () {
????// handle some logic here
????wrappedService.makeServiceCall();
????};
????});
????Angular??????黯??? ????????????????????????JS?????????????? ?????????????????????? ???????Spring IOC???? ???????????????????????????滻??? ?????????????????????.
??????????Ajax??????service?????
????Angular?????service???????Щ????????????? ??????? ??????????service???????????????????????????? ???? ????????Ajax???????????service?????????.
?????????????????????????directive????controller?????$http?? ?????????????????????. ?????$http??????????????????? ??????????????????????????? ??????????????????????http???? ????????о???????Spring MVC??request method????????HttpServeletRequest????? ?е????? ?????????????????? ?????Щ???????????????????. ????????????????鷳?? ??????ò????$httpBackend????????HTTP????????.
????????????跨?ò?????????????Ajax????????service?У? ???????????mock??service??????????????????????. ???????????????д????? ???????????????????????? ??mock$http??????????? ??????????????????.
???????Promise????Ajax???????? ???????????????
????Angular?????е?Ajax???????????????Promise???? ?????齫????Ajax??????????????????????????????????http?????service?? ????????????service???????÷????promise????????????δ???.
???????????????????????????????:
????angular.module(“TheNG”?? [])
????.service(“deliveryService”?? function ($http) {
????this.validateAddress = function (address?? success?? failure) {
????$http.post(‘/unknown’?? address).then(success?? failure);
????};
????})
????.controller(“DeliveryController”?? function ($scope?? deliveryService) {
????var acceptAddress = function () {
????console.log(‘address accepted’);
????};
????var rejectAddress = function () {
????console.log(‘address rejected’);
????};
????$scope.validateAddress = function () {
????deliveryService.validateAddress($scope.address?? acceptAddress?? rejectAddress);
????};
????});
????????????????????????????????????????????????deliveryService?? ??????????????????????? ????????????????. ????д??????????????? ??????????????????
????????? ??????service?????validateAddress?????????????????????? ??????????????????????????? ????????????????????? ??????????a???????????????????? ?????????????????????? ???????????????????????????????.
?????????????μ??????????????????????????? ???????? ??????service??????????????????????/???????? ????????service mock??? ?????mocked service??????????????????????????????????????????.???????????????????? ????????deliveryService??validateAddress()????mock??? ????????????а?????acceptAddress()??rejectAddress()????????!
????????? ??????????????????service?е?API????? ????????????????????API????????? ??????????????????service????????????HTTP???? ??????????????е?.
?????????????????? ????????? ??????????????д????. ????????????????????: service??API????????promise?? ????????????????????????promise??? ????????????mock???service?????????????????????????promise?? ??????promise?????????????????????:
????angular.module(“TheNG”?? [])
????.service(“deliveryService”?? function ($http) {
????this.validateAddress = function (address) {
????return $http.post(‘/unknown’?? address);
????};
????})
????.controller(“DeliveryController”?? function ($scope?? deliveryService) {
????var acceptAddress = function () {
????console.log(‘address accepted’);
????};
????var rejectAddress = function () {
????console.log(‘address rejected’);
????};
????$scope.validateAddress = function () {
????deliveryService.validateAddress($scope.address).then(acceptAddress?? rejectAddress);
????};
????});
????????????????????????Angular???????????????????? д??д??????е????? ?????????.