Пользовательский метод в службе Angular с использованием $resource в Jhipster

Я не понимаю синтаксиса для написания пользовательского метода в службе Angular с использованием $resource в Jhipster. После долгих исследований я сомневаюсь, что это вообще возможно.

Вот код для службы Angular.

(function() {
    'use strict';
    angular
        .module('tealboxApp')
        .factory('Task', Task);
Task.$inject = ['$resource', 'DateUtils'];

function Task ($resource, DateUtils) {
    var resourceUrl =  'api/tasks/:id';

    return $resource(resourceUrl, {}, {
        'query': { method: 'GET', isArray: true},
        'get': {
            method: 'GET',
            transformResponse: function (data) {
                if (data) {
                    data = angular.fromJson(data);
                    data.assignedDateTime = DateUtils.convertDateTimeFromServer(data.assignedDateTime);
                    data.startDateTime = DateUtils.convertDateTimeFromServer(data.startDateTime);
                    data.endDateTime = DateUtils.convertDateTimeFromServer(data.endDateTime);
                    data.startDate = DateUtils.convertLocalDateFromServer(data.startDate);
                    data.endDate = DateUtils.convertLocalDateFromServer(data.endDate);
                }
                return data;
            }
        },
        'update': {
            method: 'PUT',
            transformRequest: function (data) {
                var copy = angular.copy(data);
                copy.startDate = DateUtils.convertLocalDateToServer(copy.startDate);
                copy.endDate = DateUtils.convertLocalDateToServer(copy.endDate);
                return angular.toJson(copy);
            }
        },
        'save': {
            method: 'POST',
            transformRequest: function (data) {
                var copy = angular.copy(data);
                copy.startDate = DateUtils.convertLocalDateToServer(copy.startDate);
                copy.endDate = DateUtils.convertLocalDateToServer(copy.endDate);
                return angular.toJson(copy);
            }
        }
    });
}
})();

Я хочу добавить собственный метод, например...

'getTasksWithXYZ': {
            method: 'GET',
            transformResponse: function (data) {
                if (data) {
                    data = angular.fromJson(data);
                    data.assignedDateTime = DateUtils.convertDateTimeFromServer(data.assignedDateTime);
                    data.startDateTime = DateUtils.convertDateTimeFromServer(data.startDateTime);
                    data.endDateTime = DateUtils.convertDateTimeFromServer(data.endDateTime);
                    data.startDate = DateUtils.convertLocalDateFromServer(data.startDate);
                    data.endDate = DateUtils.convertLocalDateFromServer(data.endDate);
                }
                return data;
            }
        }

Я не знаю, как передать параметр этому методу get или даже как вызвать этот метод в контроллере. Как это сделать?


person Sumit Vairagar    schedule 26.01.2017    source источник


Ответы (1)


В свой сервис добавить params

    return $resource(resourceUrl, {}, {


     'getTasksWithXYZ': {
        method: 'GET',
        params:{id:'@id'},
        transformResponse: function (data) {
            if (data) {
                data = angular.fromJson(data);
                data.assignedDateTime = DateUtils.convertDateTimeFromServer(data.assignedDateTime);
                data.startDateTime = DateUtils.convertDateTimeFromServer(data.startDateTime);
                data.endDateTime = DateUtils.convertDateTimeFromServer(data.endDateTime);
                data.startDate = DateUtils.convertLocalDateFromServer(data.startDate);
                data.endDate = DateUtils.convertLocalDateFromServer(data.endDate);
            }
            return data;
        }
    }

     })

В вашем контроллере Task.getTasksWithXYZ(id)

person Salih Şenol Çakarcı    schedule 26.01.2017
comment
Но как я могу указать другой URL-адрес, если вы понимаете весенний отдых, то это мой код на контроллере пружины, который мне нужно вызвать. ` /** * GET /tasks : получить все задачи, назначенные пользователю * * @return ResponseEntity со статусом 200 (ОК) и список задач в теле */ @GetMapping(/tasks/assignedByUser) @Timed public List‹ Task› getAllTasksAssignedByUser(@RequestParam(userId) Long userId) { log.debug(запрос REST для получения всех задач); вернуть taskService.findAllAssignedByUser (userId); } ` - person Sumit Vairagar; 27.01.2017
comment
Мне жаль, что код в комментарии не отображается должным образом, я что-то упускаю. - person Sumit Vairagar; 27.01.2017