AngularJS: Creating Objects that map to REST Resources (ORM-Style)

前端 未结 7 668
南笙
南笙 2021-01-29 18:09

I\'m pretty new to AngularJS, but I\'m pretty unclear on how to tie it up to my Server\'s REST Api backend.

For example, say I have an \"image\" resource that I get by G

7条回答
  •  渐次进展
    2021-01-29 18:46

    JSData
    A project which started as angular-data is now "a framework-agnostic data store built for ease of use and peace of mind." It is has excellent documentation and has support for relations, multiple backends (http, localStorage, firebase), validation and of course angular integration.
    http://www.js-data.io/

    BreezeJS
    The AngularJS YouTube channel features this video using BreezeJS

    Which is an advanced ORM which even supports client-side filtering and other cool stuff. It best suited for backend that support OData, but can be made to work on other types of backends.

    ngResource
    Another option is to use the ngResource, here is an example on how to extend it with your own functions:

    module.factory('Task', function ($resource) {
        var Task = $resource(WEBROOT + 'api/tasks/:id', {id: '@id'}, {update: { method: 'PUT'}});
        angular.extend(Task.prototype, {
    
            anExampleMethod: function () {
                return 4;
            },
    
            /**
             * Backbone-style save() that inserts or updated the record based on the presence of an id.
             */
            save: function (values) {
                if (values) {
                    angular.extend(this, values);
                }
                if (this.id) {
                    return this.$update();
                }
                return this.$save();
            }
        });
        return Task;
    });
    

    I found ngResource to be very limited, even compared to Backbone.Model which has:

    • Custom JSON parsing via Model.parse
    • Possible to extend a BaseModel (No the baseUrl in ngResource)
    • Other hooks like Backbone.sync, which enables LocalStorage, etc.

    Restangular
    "AngularJS service to handle Rest API Restful Resources properly and easily"
    https://github.com/mgonto/restangular

    Or try some of the other ORM's
    https://stackoverflow.com/questions/6786307/which-javascript-orm-to-use

提交回复
热议问题