Показать сообщение отдельно
  #3 (permalink)  
Старый 24.08.2015, 23:02
Аватар для afanasev
Новичок на форуме
Отправить личное сообщение для afanasev Посмотреть профиль Найти все сообщения от afanasev
 
Регистрация: 13.11.2012
Сообщений: 3

Не дожидаясь ответа, рад сообщить. Я догадался. Видимо сильно кое где зудило... и так:

1. Возможно я направил свои и ваши мысли в неверно русло и не совсем корректно изложил задачу.
2. Оказывается $resource на то и ресурс, он же источник, единый и есть на самом деле. И у него есть действия action в которых можно настроить url и параметры! Вот оно!

И выглядит это так:

app.constant('baseUrl', 'http://myrest/v1/users');
app.factory('Users', ['$http', '$rootScope', '$resource', '$location', 'toaster', 'baseUrl',
    function ($http, $rootScope, $resource, $location, toaster, baseUrl) {

      var itemsResource = $resource(baseUrl + "/" + ":id", {id: '@id'}, {
            // тот самый custom action
            paginationQuery: { 
                method: 'GET',
                params: {pp: 3, p: 1},
                url: baseUrl + "?page=:p&per-page=:pp",
                isArray: true
            }
        });

        var currentItem = {};

        var items = [];


        function getItems() {

            var promise = itemsResource.paginationQuery().$promise;

            promise.then(fulfilled, rejected)

            function fulfilled(data) {
                items = data;
                $rootScope.$broadcast('items:updated');
            }

            function rejected(data) {
                console.log(data);
            }
        }
}


В итоге код работает как надо. Источник один общий. Действия delete save и тд работают стандартно.

Однако есть просьба. Помогите код сделать по-красивее, а то местами выглядит не очень. Я еще только учусь.

Последний раз редактировалось afanasev, 24.08.2015 в 23:38.
Ответить с цитированием