Best practices für die Erstellung von CRUD-services in AngularJS

Was ist die beste übung für die Gestaltung von CRUD-services /Fabriken innerhalb einer AngularJS-Anwendung, die Prozess single und mehrere Entitäten?

Zum Beispiel habe ich eine customer Objekt in einer Fabrik namens customerFactory enthält eine Struktur ähnlich dieser:

var customer = {
    newCustomer: false,
    selfUri: null,
    editUri: null,
    deleteUri: null,
    customerName: null,
    customerAddress: null
};

Und dass ich auch die folgenden Beispiel-Funktionen ausgesetzt, die Fabrik, das aufrufen von REST-services:

var create = function() {
    $http.post('api/customers/1', { customer: customer } );
}

var read = function() {
    $http.get('api/customers', { params { uri : customer.selfUri } );
}

var update  = function() {
    $http.put('api/customers/1', { customer: customer } );
}

var delete = function() {
    $http.delete('api/customers/1', { uri: customer.deleteUri } );
}

//This is an oddity and probably shouldn't be in this factory??
var readAll = function() {
    $http.get('api/customers', {} );
}

Alle diese Methoden funktionieren im Grunde auf die customer Objekt innerhalb der Fabrik.

Sollte die readAll() Methode in einem anderen Dienst - /Werk behandelt abrufen ALLE Kunden, anstatt in der genannten Fabrik, wie es sich mit single Entitäten? Sollten REST-Aufrufe abrufen, die mehrere Entitäten werden in einem eigenen Werk geliefert?

Beispiel: customerFactory

//Deal with single customer entities
app.factory('customerFactory', ['$http',
    function($http) {
        var customerFactory = {};

        var customer = {
            newCustomer: false,
            selfUri: null,
            editUri: null,
            deleteUri: null,
            customerName: null,
            customerAddress: null
        };

        var create = function() {
            $http.post('api/customers/1', { customer: customer } );
        }

        var read = function() {
            $http.get('api/customers', { params { uri : customer.selfUri } );
        }

        var update  = function() {
            $http.put('api/customers/1', { customer: customer } );
        }

        var delete = function() {
            $http.delete('api/customers/1', { uri: customer.deleteUri } );
        }

        customerFactory.create = create;
        customerFactory.read= read;
        customerFactory.update= update;
        customerFactory.create = delete;

       return customerFactory;

    }]);

Beispiel: customersFactory

//Deal with multiple customer entities
app.factory('customersFactory', ['$http',
    function($http) {
        var customersFactory = {};
        var customers = {};

        var readAll = function() {
        $http.get('api/customers', {} ).then(function(response) {
            customers.push(response.data);
        });

        customersFactory.readAll = readAll;

        return customersFactory;

    }]);
  • Wow.... Sie konvertieren Schienen Weg in angularJS. sehr interessant. Ich denke, Sie sollten gehen mit diesem, wenn Sie sind komfortabel mit ihm. Vielleicht, dass die Namensgebung customerFactory und customersFactory sind schwer zu unterscheiden.
InformationsquelleAutor Intrepid | 2015-02-16
Schreibe einen Kommentar