Heim Web-Frontend js-Tutorial AngularJS-Erste-Schritte-Tutorial (2): AngularJS Template_AngularJS

AngularJS-Erste-Schritte-Tutorial (2): AngularJS Template_AngularJS

May 16, 2016 pm 04:28 PM
angularjs 入门教程

Es ist an der Zeit, diesen Webseiten einige dynamische Funktionen zu geben – verwenden Sie AngularJS! Wir haben hier einen Test für den Controller hinzugefügt, der später hinzugefügt wird.

Es gibt viele Arten von Codestrukturen für eine Anwendung. Für AngularJS-Anwendungen empfehlen wir die Verwendung des Model-View-Controller (MVC)-Musters, um Code zu entkoppeln und Anliegen zu trennen. Vor diesem Hintergrund verwenden wir AngularJS, um unserer Anwendung einige Modelle, Ansichten und Controller hinzuzufügen.

Bitte setzen Sie das Arbeitsverzeichnis zurück:

Code kopieren Der Code lautet wie folgt:

git checkout -f Schritt-2

Unsere App verfügt jetzt über eine Liste mit drei Telefonen.

Die wichtigsten Unterschiede zwischen Schritt 1 und Schritt 2 sind unten aufgeführt. Sie können auf GitHub gehen, um die vollständigen Unterschiede zu sehen.

Ansichten und Vorlagen

In AngularJS ist eine Ansicht eine Abbildung eines Modells, das über eine HTML-Vorlage gerendert wird. Dies bedeutet, dass AngularJS bei jeder Modelländerung den Verbindungspunkt in Echtzeit aktualisiert und die Ansicht entsprechend aktualisiert.

Ansichtskomponenten werden beispielsweise von AngularJS mithilfe der folgenden Vorlage erstellt:

Code kopieren Der Code lautet wie folgt:



...





  • {{phone.name}}

    {{phone.snippet}}






Wir haben gerade die statisch codierte Telefonliste ersetzt, da wir hier die ngRepeat-Direktive verwenden und zwei AngularJS-Ausdrücke in geschweiften Klammern – {{phone.name}} und {{phone.snippet}} – den gleichen Effekt erzielen können .

1. Die ng-repeat="phone inphones"-Anweisung im

  • -Tag ist ein AngularJS-Iterator. Dieser Iterator weist AngularJS an, für jedes Telefon in der Liste ein
  • -Element zu erstellen, wobei das erste
  • -Tag als Vorlage dient.

    2. Wie wir in Schritt 0 erfahren haben, kennzeichnen die geschweiften Klammern um phone.name und phone.snippet die Datenbindung. Anders als bei der Konstantenberechnung ist der Ausdruck hier tatsächlich eine Datenmodellreferenz unserer Anwendung, die wir im PhoneListCtrl-Controller festgelegt haben.

    Modelle und Controller

    Das Datenmodell wird im PhoneListCtrl-Controller initialisiert (dies ist nur eine Funktion, die ein Array enthält, und das im Array gespeicherte Objekt ist die Mobiltelefondatenliste):

    app/js/controller.js:

    Code kopieren Der Code lautet wie folgt:

    Funktion PhoneListCtrl($scope) {
    $scope.phones = [
    {"name": "Nexus S",
    „snippet“: „Schnell ist mit dem Nexus S jetzt noch schneller.“},
    {"name": "Motorola XOOM™ mit Wi-Fi",
    „snippet“: „Das Tablet der nächsten Generation.“},
    {"name": "MOTOROLA XOOM™",
    „snippet“: „Das Tablet der nächsten, nächsten Generation.“🎜> ];
    }

    Obwohl der Controller keine kontrollierende Rolle zu spielen scheint, spielt er hier eine entscheidende Rolle. Controller ermöglichen es uns, Datenbindungen zwischen Modellen und Ansichten herzustellen, indem sie ihnen den Kontext unseres Datenmodells geben. So verbinden wir die Präsentationsschicht, Daten und logische Komponenten:

    1.PhoneListCtrl – Der Name der Controller-Methode (in der JS-Datei controllers.js) entspricht dem Wert der ngController-Direktive im

    2. Die Daten des Telefons sind jetzt mit dem Bereich ($scope) verknüpft, der in unsere Controller-Funktion eingefügt wird. Beim Start der Anwendung wird ein Root-Bereich erstellt, und der Controller-Bereich ist ein typischer Nachfolger des Root-Bereichs. Der Geltungsbereich dieses Controllers gilt für alle Datenbindungen innerhalb des -Tags.

    Die Scope-Theorie von AngularJS ist sehr wichtig: Ein Scope kann als Klebstoff für die Zusammenarbeit von Vorlagen, Modellen und Controllern betrachtet werden. AngularJS verwendet Bereiche sowie Informationen in Vorlagen, Datenmodellen und Controllern. Diese können helfen, das Modell und die Ansicht zu trennen, aber beide sind wirklich synchron! Alle Änderungen am Modell werden sofort in der Ansicht widergespiegelt; alle Änderungen an der Ansicht werden sofort im Modell widergespiegelt.

    Weitere Informationen zum AngularJS-Geltungsbereich finden Sie im AngularJS-Geltungsbereichsdokument.

    Testen

    Der „AngularJS-Weg“ macht das Testen von Code während der Entwicklung sehr einfach. Werfen wir einen Blick auf den folgenden neu hinzugefügten Unit-Test für den Controller:

    test/unit/controllersSpec.js:

    Code kopieren Der Code lautet wie folgt:

    beschreiben('PhoneCat-Controller', function() {

    beschreiben('PhoneListCtrl', function(){

    it('sollte ein "Telefon"-Modell mit 3 Telefonen erstellen', Funktion() {
    var Scope = {},
    ctrl = new PhoneListCtrl(scope);

    expect(scope.phones.length).toBe(3);
    });
    });
    });

    Dieser Test überprüft, ob es drei Datensätze in unserem Mobiltelefon-Array gibt (Sie müssen dieses Testskript noch nicht herausfinden). Dieses Beispiel zeigt, wie einfach es ist, einen Unit-Test für AngularJS-Code zu erstellen. Da Tests ein wesentlicher Bestandteil der Softwareentwicklung sind, erleichtern wir die Erstellung von Tests in AngularJS, um Entwickler dazu zu ermutigen, mehr davon zu schreiben.

    Beim Schreiben von Tests neigen AngularJS-Entwickler dazu, die Syntax im Jasmine Behavior-Driven Development (BBD)-Framework zu verwenden. Obwohl AngularJS Sie nicht zur Verwendung von Jasmine zwingt, werden alle unsere Tests im Tutorial mit Jasmine geschrieben. Relevantes Wissen erhalten Sie auf Jasmines offizieller Homepage oder im Jasmine Wiki.

    AngularJS-basierte Projekte sind so vorkonfiguriert, dass sie den JsTestDriver zum Ausführen von Komponententests verwenden.

    Sie können den Test folgendermaßen durchführen:

    1. Geben Sie auf einem separaten Terminal das Verzeichnis „angular-phonecat“ ein und führen Sie ./scripts/test-server.sh aus, um den Test zu starten (bitte geben Sie .scriptstest-server.bat in die Windows-Befehlszeile ein, um das Skript auszuführen. gefolgt von Der Skriptbefehl wird auf ähnliche Weise ausgeführt);
    2. Öffnen Sie ein neues Browserfenster und gehen Sie zu http://localhost:9876; 3. Wählen Sie „Diesen Browser im strengen Modus erfassen“.

    Zu diesem Zeitpunkt können Sie Ihr Fenster beiseite legen und es vergessen. JsTestDriver führt den Test selbst aus und gibt die Ergebnisse in Ihrem Terminal aus.

    4. Führen Sie zum Testen ./scripts/test.sh aus.

    Sie sollten Ergebnisse ähnlich den folgenden sehen:


    Code kopieren Der Code lautet wie folgt:
    Chrome: Runner zurückgesetzt.
    .
    Insgesamt 1 Tests (Bestanden: 1; Fehlgeschlagen: 0; Fehler: 0) (2,00 ms)
    Chrome 19.0.1084.36 Mac OS: 1 Tests ausführen (Bestanden: 1; Fehlgeschlagen: 0; Fehler 0) (2,00 ms)

    Ja! Test bestanden! Oder auch nicht ... Hinweis: Wenn nach der Ausführung des Tests ein Fehler auftritt, schließen Sie den Browser und kehren Sie zum Terminal zurück, um das Skript zu schließen. Versuchen Sie dann die oben genannten Schritte erneut.

    Üben

    Fügen Sie eine weitere Datenbindung für index.html hinzu. Zum Beispiel:


    Code kopieren Der Code lautet wie folgt:

    Gesamtzahl der Telefone: {{phones.length}}



    Erstellen Sie eine neue Datenmodelleigenschaft und binden Sie sie an die Vorlage. Zum Beispiel:
    Code kopieren Der Code lautet wie folgt:

    $scope.hello = "Hallo Welt!"

    Aktualisieren Sie Ihren Browser, um sicherzustellen, dass „Hello, World!“ angezeigt wird Erstellen Sie eine einfache Tabelle mit einem Iterator:


    Code kopieren Der Code lautet wie folgt:

    Zeilennummer
    {{i}}


    Jetzt erhöhe ich den Datenmodellausdruck um 1:

    Code kopieren Der Code lautet wie folgt:

    Zeilennummer
    {{i 1}}


    Stellen Sie sicher, dass der Komponententest fehlschlägt, nachdem Sie toBe(3) in toBe(4) geändert haben, und führen Sie dann das Skript ./scripts/test.sh erneut aus

    Zusammenfassung

    Sie verfügen jetzt über eine dynamische Anwendung mit separaten Modellen, Ansichten und Controllern, die Sie jederzeit testen können. Jetzt können Sie mit Schritt 3 fortfahren, um Ihrer Anwendung eine Volltextsuchfunktion hinzuzufügen.

  • Erklärung dieser Website
    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

    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

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    PHP-Implementierungsframework: CakePHP-Einführungs-Tutorial PHP-Implementierungsframework: CakePHP-Einführungs-Tutorial Jun 18, 2023 am 09:04 AM

    Mit der kontinuierlichen Weiterentwicklung der Internettechnologie wird auch die Webentwicklungstechnologie ständig aktualisiert und iteriert. Als Open-Source-Programmiersprache wird PHP häufig in der Webentwicklung eingesetzt. Als eines der am häufigsten verwendeten Tools in der PHP-Entwicklung kann das PHP-Framework die Entwicklungseffizienz und Codequalität verbessern. Dieser Artikel stellt Ihnen ein PHP-Framework vor – CakePHP – und bietet einige einfache Tutorials für den Einstieg. 1. Was ist CakePHP? CakePHP ist ein auf MVC (Model-View-Control) basierendes Modell

    Anfängerleitfaden: Beginnen Sie bei Null und lernen Sie MyBatis Schritt für Schritt Anfängerleitfaden: Beginnen Sie bei Null und lernen Sie MyBatis Schritt für Schritt Feb 19, 2024 am 11:05 AM

    Prägnantes und leicht verständliches MyBatis-Einführungs-Tutorial: Schreiben Sie Schritt für Schritt Ihr erstes Programm. MyBatis ist ein beliebtes Java-Persistenzschicht-Framework, das den Prozess der Interaktion mit Datenbanken vereinfacht. Dieses Tutorial zeigt Ihnen, wie Sie mit MyBatis einfache Datenbankoperationen erstellen und ausführen. Schritt 1: Umgebungseinrichtung Stellen Sie zunächst sicher, dass Ihre Java-Entwicklungsumgebung installiert ist. Laden Sie dann die neueste Version von MyBatis herunter und fügen Sie sie Ihrem Java-Projekt hinzu. Sie können es von der offiziellen Website von MyBatis herunterladen

    PHP-Implementierungsframework: Einführungs-Tutorial zum Lumen-Framework PHP-Implementierungsframework: Einführungs-Tutorial zum Lumen-Framework Jun 18, 2023 am 08:39 AM

    Lumen ist ein PHP-basiertes Mikroframework, das von Laravel-Framework-Entwicklern entwickelt wurde. Es wurde ursprünglich entwickelt, um schnell kleine API-Anwendungen und Microservices zu erstellen und dabei einige Komponenten und Funktionen des Laravel-Frameworks beizubehalten. Das Lumen-Framework ist leichtgewichtig, schnell und benutzerfreundlich und hat daher große Aufmerksamkeit und Verwendung gefunden. In diesem Artikel beginnen wir schnell mit dem Lumen-Framework und erfahren, wie Sie das Lumen-Framework zum Erstellen einfacher API-Anwendungen verwenden. Framework-Vorbereitung Bevor wir das Lumen-Framework erlernen, müssen wir es tun

    Die neuesten 5 AngularJS-Tutorials im Jahr 2022, vom Einstieg bis zur Beherrschung Die neuesten 5 AngularJS-Tutorials im Jahr 2022, vom Einstieg bis zur Beherrschung Jun 15, 2017 pm 05:50 PM

    Javascript ist eine sehr einzigartige Sprache, was die Organisation des Codes, das Programmierparadigma des Codes und die objektorientierte Theorie betrifft. Die Frage, ob Javascript eine objektorientierte Sprache ist, wird seit langem diskutiert Es gibt offensichtlich schon seit langem eine Antwort. Auch wenn Javascript seit zwanzig Jahren vorherrscht, schauen Sie sich einfach das „Black Horse Cloud Classroom JavaScript Advanced Framework“ an, wenn Sie beliebte Frameworks wie jQuery, Angularjs und sogar React verstehen möchten Design-Video-Tutorial“.

    Verwenden Sie PHP und AngularJS, um eine reaktionsfähige Website zu erstellen und ein hochwertiges Benutzererlebnis zu bieten Verwenden Sie PHP und AngularJS, um eine reaktionsfähige Website zu erstellen und ein hochwertiges Benutzererlebnis zu bieten Jun 27, 2023 pm 07:37 PM

    Im heutigen Informationszeitalter sind Websites zu einem wichtigen Instrument für Menschen geworden, um Informationen zu erhalten und zu kommunizieren. Eine responsive Website kann sich an verschiedene Geräte anpassen und den Benutzern ein qualitativ hochwertiges Erlebnis bieten, was zu einem Hotspot in der modernen Website-Entwicklung geworden ist. In diesem Artikel erfahren Sie, wie Sie mit PHP und AngularJS eine responsive Website erstellen, um ein qualitativ hochwertiges Benutzererlebnis zu bieten. Einführung in PHP PHP ist eine serverseitige Open-Source-Programmiersprache, die sich ideal für die Webentwicklung eignet. PHP bietet viele Vorteile, z. B. einfache Erlernbarkeit, plattformübergreifende Funktionalität, umfangreiche Toolbibliothek und Entwicklungseffizienz

    Erstellen Sie Webanwendungen mit PHP und AngularJS Erstellen Sie Webanwendungen mit PHP und AngularJS May 27, 2023 pm 08:10 PM

    Mit der kontinuierlichen Entwicklung des Internets sind Webanwendungen zu einem wichtigen Bestandteil des Informationsaufbaus in Unternehmen und zu einem notwendigen Mittel für Modernisierungsarbeiten geworden. Um die Entwicklung, Wartung und Erweiterung von Webanwendungen zu vereinfachen, müssen Entwickler ein technisches Framework und eine Programmiersprache wählen, die ihren Entwicklungsanforderungen entspricht. PHP und AngularJS sind zwei sehr beliebte Webentwicklungstechnologien. Sie sind serverseitige bzw. clientseitige Lösungen und können die Entwicklungseffizienz und das Benutzererlebnis von Webanwendungen erheblich verbessern. Vorteile von PHPPHP

    Erste Schritte mit dem Python Flask-Framework Erste Schritte mit dem Python Flask-Framework Jun 17, 2023 am 08:48 AM

    Einführungs-Tutorial zum PythonFlask-Framework Flask ist ein einfaches und benutzerfreundliches Python-Web-Framework. Es legt mehr Wert auf Flexibilität und Leichtigkeit und ermöglicht es Programmierern, nach ihren eigenen Vorlieben zu erstellen. Dieser Artikel führt Sie in die grundlegenden Konzepte, Installation und Verwendung von Flask ein und zeigt anhand eines einfachen Beispiels, wie Sie mit Flask eine Webanwendung erstellen. Was ist eine Flasche? Flask ist ein leichtes Webanwendungs-Framework auf Python-Basis, für das keine speziellen Funktionen erforderlich sind

    Leitfaden zum Java-E-Mail-Versand: Einfacher Einstieg und praktische Demonstrationen Leitfaden zum Java-E-Mail-Versand: Einfacher Einstieg und praktische Demonstrationen Dec 27, 2023 am 09:17 AM

    Tutorial zum Java-E-Mail-Versand: Schnellstart und Beispieldemonstration In den letzten Jahren ist E-Mail mit der Popularität und Entwicklung des Internets zu einem unverzichtbaren Bestandteil des täglichen Lebens und der Arbeit der Menschen geworden. Das Versenden von E-Mails über die Programmiersprache Java kann nicht nur einen schnellen und effizienten E-Mail-Versand ermöglichen, sondern durch Automatisierung auch die Arbeitseffizienz erheblich verbessern. In diesem Artikel wird die Verwendung der JavaMail-Bibliothek zum Senden von E-Mails in Java vorgestellt und anhand spezifischer Codebeispiele demonstriert. Schritt 1: Importieren und konfigurieren Sie zunächst die JavaMail-Bibliothek

    See all articles