2016-05-16 13 views
1

Der Versuch, herauszufinden, ob es besser ist, einen generischen $ ressourcengesteuerten Datendienst oder mehrere Dienste für verschiedene Aufrufe zu erstellen.

Zum Beispiel:

Ich habe api/user /: userId/events /: eventId und sagen: api/user /: userId/Biere /: beerId

Variant (A):

function UserDataService($resource, API_URL) { 
    return function (whichResource){ 
     return $resource(API_URL + whichResource, {userId: '@_userId'}); 
    } 
} 

UserMainController(UserDataService, RESOURCE) { 
    var UserMainCtrl = this; 
    UserMainCtrl.events = UserDataService(RESOURCE.USERS.EVENT.LIST).get({userId:1}); 
    UserMainCtrl.beers = UserDataService(RESOURCE.USERS.BEER.LIST).get({userId:1}); 

} 

Variant (B):

function UserEventService($resource, API_URL, RESOURCE) { 
    return $resource(API_URL + RESOURCE.USERS.EVENT.LIST, {userId: '@_userId'}); 

} 

function UserBeerService($resource, API_URL, RESOURCE) { 
    return $resource(API_URL + RESOURCE.USERS.EVENT.LIST, {userId: '@_userId'}); 
} 

UserMainController(UserService, UserBeerService) { 
    var UserMainCtrl = this; 
    UserMainCtrl.events = UserEventService.get({userId:1}); 
    UserMainCtrl.beers = UserBeerService.get({userId:1}); 
} 

Was ist besser und warum? Oder etwas ganz anderes?

Die Beispiele, die ich gesehen habe, waren nur eindimensional, zum Beispiel Filme, aber nicht Benutzer plus Filme plus Musik.

Danke!

Antwort

2

Sie sollten Ansatz B sicher verwenden. Noch besser trennen Sie Ihre Dateien für jede $ Ressource. Zum Beispiel könnten Sie so etwas wie diese Ordnerstruktur für jedes Modul haben, das mit einer Ressource und einem Router verbunden ist.

Js/ 
    components/ 
       beers/ 
        beers-resource.js 
        beers-controller.js 
        beers-router.js 
       wines/ 
        wines-resource.js 
        wines-controller.js 
        wines-router.js 

Dies ist der beste Weg, wenn Sie mich fragen, da wird youir Code einfacher sein, auf lange Sicht zu lesen und zu pflegen.

+0

Danke für die Info. Sehr geschätzt. – MaxRocket