Skip to content

Magora-Systems-Frontend/ng-resource-with-relations

Repository files navigation

angular .module('myApp', ['mgr.ngResourceWithRelations'])

Данный модуль позволяет связать несколько моделей.

Базируется модуль на ngResource. Модуль добавляет два метода к $resource

getWith и queryWith

первым параметром передаем relations

relations может быть строкой или массивом

вложенность связанности не ограничена

relations = 'news.category......'

или

relations = [{ model: 'news', params: { sort: 'id' }, with: [{ model: 'category' }] }]

Для связанных моделей можно передать дополнительные параметры на сервер

angular .module('myApp', ['mgr.ngResourceWithRelations']) .factory('CategoryModel', CategoryModel) .factory('NewsModel', NewsModel) .run(run);

CategoryModel.$inject = ['$resourceWithRelations'];

function CategoryModel($resourceWithRelations) {
    return $resourceWithRelations('category.json', {
        "news": {
            "modelName": "NewsModel",
            "collection": "news",
            "via": "category_id"
        }
    }, {id: '@id'})
}

NewsModel.$inject = ['$resourceWithRelations'];

function NewsModel($resourceWithRelations) {
    return $resourceWithRelations('news.json', {
        "category_id": {
            "modelName": "CategoryModel"
        }
    }, {id: '@id'})
}


run.$inject = ['CategoryModel', 'NewsModel'];

function run(CategoryModel, NewsModel) {
    CategoryModel.getWith('news', {}, function (items) {
        console.log('items', items)
    });

    CategoryModel.getWith([{
        model: 'news',
        params: {
            sort: 'id'
        }
    }], {}, function (items) {
        console.log('items', items)
    });

}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published