suchen
HeimWeb-Frontendjs-TutorialRäumen Sie Ihre Winkelcontroller mit Fabriken und Diensten auf

Tidy Up Your Angular Controllers with Factories and Services

Vor ungefähr fünf oder sechs Jahren dominierte JQuery die Kunden des Webs. Es liest wie Pure English, ist einfach zu installieren und hat eine reibungslose Lernkurve, die selbst Kleinkinder leicht loslegen können. Diese Benutzerfreundlichkeit bringt jedoch auch eine Reihe von Problemen mit sich. JQuery macht es leicht, etwas zusammenzusetzen, das „nutzbar“ ist, aber es geht zu Lasten von Best Practices, Wartbarkeit und Skalierbarkeit. Dann beginnt der Framework -Krieg und bald krabbeln alle, um die neuesten und besten Frameworks auszuprobieren, die versprechen, Struktur und Skalierbarkeit in ihre Anwendungen zu bringen. AngularJS ist eines der Frameworks. Jetzt ist die Lernkurve von Angular viel steiler als die von JQuery, aber ich denke, sie hat sich so weit entwickelt, dass viele Entwickler grundlegende Anwendungen mit fairem Vertrauen einrichten können. Mit anderen Worten, die Verwendung von Frameworks kann die Kernprobleme des Anwendungsdesigns nicht automatisch lösen. Es ist weiterhin möglich, nicht zubereitete oder nicht skalierbare Anwendungen in Frameworks wie AngularJs, Emberjs oder React zu erstellen. Tatsächlich ist es für Anfänger und sogar Intermediate-Framework-Benutzer weit verbreitet, diesen Fehler zu machen.

Schlüsselpunkte

  • Verwenden Sie die Winkelfabrik, um die Erstellung und Konfiguration von Objekten zu verkapulieren und zu verwalten, wodurch der Fokus der Objekterstellung vom Controller getrennt wird, wodurch die Modularität und Wartbarkeit verbessert wird.
  • Implementieren Sie Dienste, um Datenabruf- und Geschäftslogik zu verarbeiten und den Angular Controller so zu optimieren, dass er sich nur auf die Sichtverwaltung konzentriert.
  • Verwenden Sie die controllerAs -Syntax, um die Bindung in Vorlagen zu vereinfachen und häufige Fallstricke im Zusammenhang mit der Verwendung von $scope zu vermeiden, wodurch die Lesbarkeit und Wartbarkeit Ihres Codes verbessert wird.
  • Refactor den Controller, indem Sie wiederverwendbare Logik in einen Dienst oder eine Fabrik verschieben, wodurch ein sauberer und fokussierter Controller aufrechterhalten wird, der hauptsächlich mit der Logik im Zusammenhang mit der Ansicht befasst.
  • Testcontroller, Dienste und Fabriken mit Frameworks wie Jasmine oder Mokka, um sicherzustellen, dass Komponenten unabhängig arbeiten und Anwendungen robust halten.
  • abstrakte sich wiederholende oder gemeinsam genutzte Funktionen in Dienste oder Fabriken, um Code -Duplikation zu vermeiden und die Aktualisierung und Verwaltung von Funktionen zu erleichtern, die in verschiedenen Teilen der Anwendung verwendet werden.

Wie ist es so einfach, außer Kontrolle zu geraten?

Um zu demonstrieren, wie diese plötzliche Komplexität selbst in der grundlegendsten AngularJS -Anwendung auftritt, beginnen wir mit dem Aufbau einer Anwendung und beobachten Sie, wo wir schief gehen könnten. Dann werden wir uns die Lösung später ansehen.

Erstellen wir eine einfache Anwendung

Die Anwendung, die wir erstellen werden, ist eine Bewertung von Dribbble Player. Wir können den Namen des Dribbble -Benutzers eingeben und sie in die Anzeigetafel hinzufügen. Spoiler - Hier können Sie die effektive Implementierung des Endprodukts sehen. Erstellen Sie zuerst eine Index.html -Datei mit folgenden Inhalten:

<!DOCTYPE html>
<html>
  <head>
    <title>Angular 重构</title>
    <link href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
    <🎜>
  </head>
  <body>
    <div class="container">
      <div class="panel panel-default">
        <div class="panel-heading">Dribbble 玩家分数</div>
        <div class="panel-body">
          <p>添加 Dribbble 玩家以查看他们的排名:</p>
          <div class="form-inline">
            <input class="form-control" type="text" />
            <button class="btn btn-default">添加</button>
          </div>
        </div>
        <ul class="list-group"></ul>
      </div>
    </div>
  </body>
</html>

Erstellen Sie unsere AngularJS -Anwendung

Wenn Sie schon einmal eckige Anwendungen geschrieben haben, sollten die nächsten Schritte sehr vertraut sein. Zunächst erstellen wir eine App.js -Datei, in der wir unsere AngularJS -Anwendung instanziieren:

<!DOCTYPE html>
<html>
  <head>
    <title>Angular 重构</title>
    <link href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
    <🎜>
  </head>
  <body>
    <div class="container">
      <div class="panel panel-default">
        <div class="panel-heading">Dribbble 玩家分数</div>
        <div class="panel-body">
          <p>添加 Dribbble 玩家以查看他们的排名:</p>
          <div class="form-inline">
            <input class="form-control" type="text" />
            <button class="btn btn-default">添加</button>
          </div>
        </div>
        <ul class="list-group"></ul>
      </div>
    </div>
  </body>
</html>

Jetzt geben wir es in unsere Index.html -Datei ein. Wir fügen auch das ng-app="dribbbleScorer" -Merkmal zu unserem Tag hinzu, um die Winkelanwendung zu starten.

var app = angular.module("dribbbleScorer", []);

Nachdem unsere Anwendung eingerichtet und gebootet ist, können wir die Geschäftslogik der Anwendung verarbeiten.

(Der folgende Inhalt ähnelt dem Originaltext, aber die Sätze und der Vokabular werden angepasst, um die ursprüngliche Bedeutung unverändert zu halten, und einige wiederholte Schritte werden weggelassen, um die Ausgangslänge zu steuern.)

Durch schrittweise Hinzufügen von Funktionen (Formulare, Dribbble -Datenerfassung, Playerentfernung, Spielergebrauch, Spielerobjekte und Bewertungsberechnung). Der ursprüngliche Text zeigt, wie die Anwendung Schritt für Schritt "ausgeführt" wird, aber auch den Controller -Code verursacht auch aufgebläht und komplex werden.

Verwenden Sie die Drehfabrik, um unseren Fokus

abstrahieren zu lassen

Die beiden Konzepte zum Hinzufügen und Entfernen von Spielern sind etwas Teil des Controllers. Dies ist nicht so sehr, dass der Controller diese Funktionen enthüllt, sondern dass er auch für ihre Implementierung verantwortlich ist. Wäre es nicht besser, wenn die Funktion des Controllers die Anfrage nur an einen anderen Teil der Anwendung überreicht, um die Vor- und Nachteile des Hinzufügens des Spielers zu verarbeiten? Hier kommt die AngularJS -Fabrik ins Spiel. addPlayer()

(Die Fabrikerstellung und Verwendung des Originaltextes wurde neu geschrieben, was prägnanter und klarer ist und die Kernlogik behält)

Wir haben eine

Fabrik erstellt, die ein Konstruktor zum Erstellen von Dribbble -Player -Objekten ist. Diese Fabrik ist dafür verantwortlich, Daten von der Dribbble -API abzurufen und sie dem Player -Objekt hinzuzufügen. Durch die Verwendung dieser Fabrik haben wir den Controller so vereinfacht, dass er nur für das Hinzufügen und Entfernen von Spielern verantwortlich ist. DribbblePlayer

(Die Verbesserungen der Fabrikfunktionen im Originaltext, wie das Hinzufügen von und likeScore() Methoden, wurden ebenfalls umgeschrieben, um es prägnanter zu machen) commentScore()

Wir fügen auch die Score -Berechnungsmethode zur

-Fabrik als Methode des Spielersobjekts hinzu. Auf diese Weise ist der Controller -Code prägnanter und nur für die Logik im Zusammenhang mit der Ansicht verantwortlich. DribbblePlayer

Zusammenfassung

Dieser Artikel zeigt, wie man problemlos „nutzbarer“ Code schreibt und wie es schnell schwer zu warten ist. Wir haben einen chaotischen Controller voller Funktionen und Verantwortlichkeiten. Nach einigen Refactoring sieht unsere Controller -Datei jetzt jedoch so aus:

<html ng-app="dribbbleScorer">
  ...
</html>
Es ist einfacher zu lesen und konzentriert sich auf sehr wenige Dinge - darum geht es bei Refactoring. Ich hoffe, ich habe Ihnen die notwendigen Werkzeuge zur Verfügung gestellt, damit Sie über einen besseren Weg nachdenken können, um AngularJS -Anwendungen zu erstellen. Happy Refactoring! Der Code für dieses Tutorial ist auf GitHub verfügbar!

(Der FAQ -Teil am Ende des Originaltextes wird weggelassen, da der Artikel zu lang ist und eine schwache Beziehung zum Kerninhalt hat. Bei Bedarf können Sie eine separate FAQ -Frage stellen, um zu beantworten.)

Das obige ist der detaillierte Inhalt vonRäumen Sie Ihre Winkelcontroller mit Fabriken und Diensten auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Ersetzen Sie Stringzeichen in JavaScriptErsetzen Sie Stringzeichen in JavaScriptMar 11, 2025 am 12:07 AM

Detaillierte Erläuterung der Methode für JavaScript -Zeichenfolge und FAQ In diesem Artikel werden zwei Möglichkeiten untersucht, wie String -Zeichen in JavaScript ersetzt werden: Interner JavaScript -Code und interne HTML für Webseiten. Ersetzen Sie die Zeichenfolge im JavaScript -Code Die direkteste Möglichkeit ist die Verwendung der Ersatz () -Methode: str = str.replace ("find", "ersetzen"); Diese Methode ersetzt nur die erste Übereinstimmung. Um alle Übereinstimmungen zu ersetzen, verwenden Sie einen regulären Ausdruck und fügen Sie das globale Flag G hinzu:: STR = Str.Replace (/fi

Wie erstelle ich meine eigenen JavaScript -Bibliotheken?Wie erstelle ich meine eigenen JavaScript -Bibliotheken?Mar 18, 2025 pm 03:12 PM

In Artikel werden JavaScript -Bibliotheken erstellt, veröffentlicht und aufrechterhalten und konzentriert sich auf Planung, Entwicklung, Testen, Dokumentation und Werbestrategien.

Wie optimiere ich den JavaScript -Code für die Leistung im Browser?Wie optimiere ich den JavaScript -Code für die Leistung im Browser?Mar 18, 2025 pm 03:14 PM

In dem Artikel werden Strategien zur Optimierung der JavaScript -Leistung in Browsern erörtert, wobei der Schwerpunkt auf die Reduzierung der Ausführungszeit und die Minimierung der Auswirkungen auf die Lastgeschwindigkeit der Seite wird.

JQuery MatrixeffekteJQuery MatrixeffekteMar 10, 2025 am 12:52 AM

Bringen Sie Matrix -Filmeffekte auf Ihre Seite! Dies ist ein cooles JQuery -Plugin, das auf dem berühmten Film "The Matrix" basiert. Das Plugin simuliert die klassischen grünen Charakter-Effekte im Film und wählen Sie einfach ein Bild aus, und das Plugin verwandelt es in ein mit numerischer Zeichen gefüllte Bild im Matrix-Stil. Komm und probiere es aus, es ist sehr interessant! Wie es funktioniert Das Plugin lädt das Bild auf die Leinwand und liest die Pixel- und Farbwerte: Data = ctx.getImagedata (x, y, setting.grainize, setting.grainesize) .data Das Plugin liest geschickt den rechteckigen Bereich des Bildes und berechnet JQuery, um die durchschnittliche Farbe jedes Bereichs zu berechnen. Dann verwenden Sie

Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools?Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools?Mar 18, 2025 pm 03:16 PM

In dem Artikel werden effektives JavaScript -Debuggen mithilfe von Browser -Entwickler -Tools, der Schwerpunkt auf dem Festlegen von Haltepunkten, der Konsole und der Analyse der Leistung erörtert.

So bauen Sie einen einfachen JQuery SliderSo bauen Sie einen einfachen JQuery SliderMar 11, 2025 am 12:19 AM

In diesem Artikel werden Sie mit der JQuery -Bibliothek ein einfaches Bildkarousel erstellen. Wir werden die BXSLIDER -Bibliothek verwenden, die auf JQuery basiert und viele Konfigurationsoptionen zum Einrichten des Karussells bietet. Heutzutage ist Picture Carousel zu einem Muss auf der Website geworden - ein Bild ist besser als tausend Wörter! Nachdem Sie sich entschieden haben, das Bild -Karussell zu verwenden, ist die nächste Frage, wie Sie es erstellen. Zunächst müssen Sie hochwertige, hochauflösende Bilder sammeln. Als nächstes müssen Sie ein Bildkarousel mit HTML und einem JavaScript -Code erstellen. Es gibt viele Bibliotheken im Web, die Ihnen helfen können, Karussell auf unterschiedliche Weise zu erstellen. Wir werden die Open -Source -BXSLIDER -Bibliothek verwenden. Die BXSLIDER -Bibliothek unterstützt reaktionsschnelles Design, sodass das mit dieser Bibliothek gebaute Karussell an alle angepasst werden kann

Verbesserung des strukturellen Markups mit JavaScriptVerbesserung des strukturellen Markups mit JavaScriptMar 10, 2025 am 12:18 AM

Wichtige Punkte erweiterte strukturierte Tagging mit JavaScript können die Zugänglichkeit und Wartbarkeit von Webseiteninhalten erheblich verbessern und gleichzeitig die Dateigröße reduzieren. JavaScript kann effektiv verwendet werden, um HTML -Elementen dynamisch Funktionen hinzuzufügen, z. Durch das Integrieren von JavaScript in strukturierte Tags können Sie dynamische Benutzeroberflächen erstellen, z. B. Tabletten, für die keine Seiten -Aktualisierung erforderlich ist. Es ist entscheidend sicherzustellen, dass JavaScript -Verbesserungen die grundlegende Funktionalität von Webseiten nicht behindern. Erweiterte JavaScript -Technologie kann verwendet werden (

So laden und herunterladen Sie CSV -Dateien mit Angular hoch und laden Sie sie herunterSo laden und herunterladen Sie CSV -Dateien mit Angular hoch und laden Sie sie herunterMar 10, 2025 am 01:01 AM

Datensätze sind äußerst wichtig für den Aufbau von API -Modellen und verschiedenen Geschäftsprozessen. Aus diesem Grund ist das Import und Exportieren von CSV eine häufig benötigte Funktionalität. In diesem Tutorial lernen Sie, wie Sie eine CSV-Datei in einem Angular herunterladen und importieren.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software