Angular-styleguide: Wohin mit Diensten, die weder Controller noch Views haben?

Erstellt am 22. März 2016  ·  3Kommentare  ·  Quelle: johnpapa/angular-styleguide

Zum Beispiel: Ich habe einen StatesService. Es gibt alle Zustände eines Landes zurück, hat aber keine eigene Ansicht.

  1. Wenn es nur in einer Ansicht verwendet wird, sollte ich es in den Unterordner dieser Ansicht legen?
  2. Wenn es in vielen Ansichten verwendet wird, wo soll ich es platzieren?

In "Folder-by-feature" https://github.com/johnpapa/angular-styleguide/tree/master/a1#folders -by-feature-structure, Es kann einen Ordner "services" sehen, aber nicht im Bild unten .

Im Moment verwende ich einen "zusätzlichen" Ordner, um Dienste ohne Controller oder Ansichten abzulegen.

@johnpapa

Hilfreichster Kommentar

Dienste beziehen sich nicht auf eine Ansicht, sondern auf einen Dienst oder eine Reihe von Aktionen, die sie für eine App bereitstellen. Ihr Szenario ist also ziemlich häufig. Du hast schon mehr als die Hälfte geschafft :)

Zuerst entscheiden wir, ob wir eine Dienstleistung benötigen. Das haben Sie bereits getan, als Sie den Status der Handles ermittelt haben.

Dann entscheiden wir, wie wir nur diese Logik extrahieren. Das hast du auch geschafft!

Dann entscheiden wir, wer es braucht. Wird es von 1 Controller verwendet? 1 Dienst? 1 Richtlinie? Sind sie alle in einem Feature/Modul? Wenn es von einem Modul verwendet wird, lege ich es in dieses Modul. Wenn es in der gesamten App verwendet wird, platzieren Sie es in einem gemeinsam genutzten Modul.

Viel Glück

Alle 3 Kommentare

  1. Das ist richtig
  2. Sie sollten es in die Core-Service-Datei core.service.js einfügen

Ich habe ein services -Verzeichnis, in dem alle meine gemeinsamen Dienste gespeichert sind.

Persönlich würde ich es nicht in eine "Core Service" -Datei stecken, da dies so aussieht, als würde es gegen die Regel 1 (Y001) verstoßen .

Dienste beziehen sich nicht auf eine Ansicht, sondern auf einen Dienst oder eine Reihe von Aktionen, die sie für eine App bereitstellen. Ihr Szenario ist also ziemlich häufig. Du hast schon mehr als die Hälfte geschafft :)

Zuerst entscheiden wir, ob wir eine Dienstleistung benötigen. Das haben Sie bereits getan, als Sie den Status der Handles ermittelt haben.

Dann entscheiden wir, wie wir nur diese Logik extrahieren. Das hast du auch geschafft!

Dann entscheiden wir, wer es braucht. Wird es von 1 Controller verwendet? 1 Dienst? 1 Richtlinie? Sind sie alle in einem Feature/Modul? Wenn es von einem Modul verwendet wird, lege ich es in dieses Modul. Wenn es in der gesamten App verwendet wird, platzieren Sie es in einem gemeinsam genutzten Modul.

Viel Glück

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen