Heim Web-Frontend js-Tutorial Detaillierte Erläuterung der AngularJS-Syntax (Fortsetzung)_AngularJS

Detaillierte Erläuterung der AngularJS-Syntax (Fortsetzung)_AngularJS

May 16, 2016 pm 04:18 PM
angularjs 语法

src- und href-Attribute

In AngularJS sollte src als ng-src und href als ng-href geschrieben werden. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:

Ausdruck

Sie können in Vorlagen einfache mathematische Operationen, Vergleichsoperationen, bitweise Operationen, Referenzarrays, Objektnotationen usw. ausführen. Ausdrücke verwenden jedoch einen benutzerdefinierten Interpreter von Angular), anstatt die eval()-Funktion von Javascript zu verwenden, daher gibt es größere Einschränkungen.
Obwohl Ausdrücke hier in vielerlei Hinsicht strenger sind als Javascript, sind sie toleranter gegenüber undefiniert und null. Wenn ein Fehler auftritt, zeigt die Vorlage einfach nichts an, anstatt einen NullPointerException-Fehler auszulösen. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:


{{computer() /10 }}
//Obwohl es legal ist, fügt es die Geschäftslogik in die Vorlage ein.

Trennen Sie die Verantwortlichkeiten von UI und Controller

Controller sind an bestimmte DOM-Fragmente gebunden, und diese Fragmente sind der Inhalt, den sie verwalten müssen. Es gibt zwei Möglichkeiten, einen Controller einem DOM-Knoten zuzuordnen. Eine besteht darin, ihn über ng-controller in der Vorlage zu deklarieren. Die zweite besteht darin, ihn über Routing an ein dynamisch geladenes DOM-Vorlagenfragment zu binden. Wir können verschachtelte Controller erstellen. Sie können Datenmodelle und Funktionen über Vererbungsstrukturen teilen. Die eigentliche Verschachtelung erfolgt auf dem $scope-Objekt. Durch den internen primitiven Vererbungsmechanismus wird der $scope des übergeordneten Controllerobjekts an das innere verschachtelte $ übergeben Geltungsbereich (alle Eigenschaften, einschließlich Funktionen). Zum Beispiel:

Code kopieren Der Code lautet wie folgt:


...


Verwenden Sie $scope, um Modelldaten verfügbar zu machen

Sie können $scope-Eigenschaften explizit erstellen, zum Beispiel $scope.count = 5. Sie können Datenmodelle auch indirekt über die Vorlage selbst erstellen.

Nach Ausdruck. Zum Beispiel

Code kopieren Der Code lautet wie folgt:


NG-Model für Formularelemente verwenden

Ähnlich wie Ausdrücke funktionieren die auf ng-model angegebenen Modellparameter auch im äußeren Controller. Der einzige Unterschied besteht darin, dass dadurch eine bidirektionale Bindung zwischen dem Formularelement und dem angegebenen Modell erstellt wird.

Verwenden Sie Watch, um Änderungen im Datenmodell zu überwachen

Die Funktionssignatur von $watch lautet: $watch(watchFn,watchAction,deepWatch)
watchFn ist eine Zeichenfolge mit einem Angular-Ausdruck oder einer Angular-Funktion, die den aktuellen Wert des überwachten Datenmodells zurückgibt. watchAction ist eine Funktion oder ein Ausdruck, die aufgerufen wird, wenn sich watchFn ändert. Seine Funktionssignatur lautet:
function(newValue,oldValue,scope) deepWatch Wenn dieser optionale boolesche Parameter auf true gesetzt ist, weist er Angular an, zu prüfen, ob sich jede Eigenschaft des überwachten Objekts geändert hat. Sie können diesen Parameter verwenden, wenn Sie Elemente in einem Array oder alle Eigenschaften eines Objekts überwachen möchten, anstatt einen einzelnen Wert zu überwachen. Beachten Sie, dass Angular Arrays oder Objekte durchlaufen muss. Wenn die Sammlung groß ist, ist der Vorgang kompliziert und umfangreich.

Die $watch-Funktion gibt eine Funktion zurück. Wenn Sie keine Änderungsbenachrichtigungen benötigen, können Sie diese zurückgegebene Funktion verwenden, um sich vom Monitor abzumelden.
Wenn wir eine Eigenschaft überwachen und uns dann von der Überwachung abmelden müssen, können wir den folgenden Code verwenden: var dereg = $scope.$watch('someModel.someProperty',callbackOnChange());
... dereg();

Der Beispielcode lautet wie folgt:

Code kopieren Der Code lautet wie folgt:



    Ihr Warenkorb
   


   

       

            {{item.title}}
           
            {{item.price | Währung}}
            {{item.price * item.quantity | Währung}}
       

       
Gesamt: {{totalCart()| Währung }}

       
Rabatt: {{bill.discount | Währung}}

       
Zwischensumme: {{subtotal() | Währung}}

   

   


上面的watch存在性能问题, calculateTotals函数执行了6次, 其中三次是因为循坏, 每次循环, 都会重新渲染数据.
下面是改良后的代码

复制代码 代码如下:



    Ihr Warenkorb
   


   

       

            {{item.title}}
           
            {{item.price | Währung}}
            {{item.price * item.quantity | Währung}}
       

       
Gesamt: {{bill.totalcart| Währung }}

       
Rabatt: {{bill.discount | Währung}}

       
SubTotal: {{bill.subtotal | Währung}}

   

   


对于大型的itms数组来说,如果每次在Angular显示页面时只重新计算bill属性,那么性能会好很多。通过创建一个带有watchFn的$watch函数,我们可以实现这一点.

复制代码 代码如下:

$scope.$watch(
var totalCart = function() {
            var total = 0;
for (var i=0,len=$scope.items.length;i                          total = total $scope.items[i].price * $scope.items[i].quantity;
                }
                      $scope.bill.totalcart = total;
$scope.bill.discount = total > 10 :0;
$scope.bill.subtotal = total - $scope.bill.discount;
            });

Mehrere Dinge überwachen

Wenn Sie mehrere Eigenschaften oder Objekte überwachen und eine Funktion ausführen möchten, wenn sich eine davon ändert, haben Sie zwei grundlegende Möglichkeiten:

Überwachen Sie den Wert der Verkettung dieser Eigenschaften

Fügen Sie sie in ein Array oder Objekt ein und übergeben Sie einen Wert an den Parameter „deepWatch“

Anleitung bzw.:
Im ersten Fall verfügt Ihr Gültigkeitsbereich über zwei Eigenschaften: a und b. Wenn sich diese beiden Eigenschaften ändern, müssen Sie diese beiden Eigenschaften gleichzeitig überwachen $scope.$watch('things.a Things.b',callMe(...));
Wenn die Liste sehr lang ist, müssen Sie eine Funktion schreiben, um den verketteten Wert zurückzugeben.

Im zweiten Fall müssen Sie alle Eigenschaften des Dingeobjekts überwachen. Sie können dies tun:

Code kopieren Der Code lautet wie folgt:

$scope.$watch('things',callMe(...),true);

Verwenden Sie Module, um Abhängigkeiten zu organisieren

Provider(Name,Objekt ODER Konstruktor()) Beschreibung: Ein konfigurierbarer Dienst, der komplexe Logikvergleiche erstellt. Wenn Sie ein Objekt als Parameter übergeben, muss das Objektobjekt über eine Funktion namens $get verfügen, die den Namen des Dienstes zurückgeben muss. Andernfalls geht AngularJS davon aus, dass Sie einen Konstruktor übergeben, und der Aufruf des Konstruktors gibt das Dienstinstanzobjekt zurück.
Factory(name,$get Function()) Beschreibung: Ein nicht konfigurierbarer Dienst, dessen Erstellungslogik relativ kompliziert ist. Sie müssen eine Funktion angeben, die beim Aufruf die Dienstinstanz zurückgibt. Es kann als Provider(name,{$get:$getFunction()}) gesehen werden.
service(name,constructor()) Da es sich um einen nicht konfigurierbaren Dienst handelt, ist das Erstellen von Logik relativ einfach. Ähnlich wie beim Konstruktorparameter der oben genannten Anbieterfunktion kann Angular eine Dienstinstanz erstellen, indem es diese aufruft.

Beispiel für die Verwendung der Modulfabrik

Code kopieren Der Code lautet wie folgt:



Ihr Warenkorb




Shoppen!!



   
        {{item.title}}
        {{item.description}}
        {{item.price | Währung}}
   




引入第三方模块

这样就会工作的很好.但是,如果你打算使用第三方包提供的服务或者指令,他们一般都带有自己的模块,你需要在应用模块中定义依赖关心才能引用他们.

var appMod = angle.module('app',['Snazzy','Super']);

关于filter的例子

复制代码 代码如下:


Ihr Warenkorb




{{pageHeading | titleCase}}





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ßer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Zwei -Punkte -Museum: Alle Exponate und wo man sie finden kann
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

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)

So verwandeln Sie Ihren Python-Code schnell in eine API So verwandeln Sie Ihren Python-Code schnell in eine API Apr 14, 2023 pm 06:28 PM

Wenn es um die API-Entwicklung geht, denken Sie vielleicht an DjangoRESTFramework, Flask und FastAPI. Ja, das heute geteilte Framework ermöglicht es Ihnen, vorhandene Funktionen schneller in APIs umzuwandeln. Einführung in Sanic Sanic[1] ist ein Python3.7+-Webserver und ein Web-Framework zur Verbesserung der Leistung. Es ermöglicht die Verwendung der in Python 3.5 hinzugefügten Async/Await-Syntax, wodurch Blockierungen effektiv vermieden und die Reaktionsgeschwindigkeit verbessert werden können. Sanic ist bestrebt, eine einfache und schnelle Möglichkeit zur Erstellung und Einführung bereitzustellen

Neue Typ-Alias-Syntax in PHP8.0 Neue Typ-Alias-Syntax in PHP8.0 May 14, 2023 pm 02:21 PM

Mit der Veröffentlichung von PHP 8.0 wurde eine neue Typ-Alias-Syntax hinzugefügt, die die Verwendung benutzerdefinierter Typen erleichtert. In diesem Artikel werfen wir einen genaueren Blick auf diese neue Syntax und ihre Auswirkungen auf Entwickler. Was ist ein Typalias? In PHP ist ein Typalias im Wesentlichen eine Variable, die auf den Namen eines anderen Typs verweist. Diese Variable kann wie jeder andere Typ verwendet und an einer beliebigen Stelle im Code deklariert werden. Die Hauptfunktion dieser Syntax besteht darin, benutzerdefinierte Aliase für häufig verwendete Typen zu definieren, um den Code leichter lesbar und verständlich zu machen.

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“.

Was sind die Syntax- und Strukturmerkmale von Lambda-Ausdrücken? Was sind die Syntax- und Strukturmerkmale von Lambda-Ausdrücken? Apr 25, 2024 pm 01:12 PM

Der Lambda-Ausdruck ist eine anonyme Funktion ohne Namen und seine Syntax lautet: (parameter_list)->Ausdruck. Sie zeichnen sich durch Anonymität, Vielfalt, Currying und Schließung aus. In praktischen Anwendungen können Lambda-Ausdrücke verwendet werden, um Funktionen prägnant zu definieren, beispielsweise die Summationsfunktion sum_lambda=lambdax,y:x+y, und die Funktion map() auf die Liste anzuwenden, um die Summationsoperation durchzuführen.

Die Verbindung und der Unterschied zwischen Go-Sprache und JS Die Verbindung und der Unterschied zwischen Go-Sprache und JS Mar 29, 2024 am 11:15 AM

Die Verbindung und der Unterschied zwischen Go-Sprache und JS Go-Sprache (auch bekannt als Golang) und JavaScript (JS) sind derzeit beliebte Programmiersprachen. Sie sind in einigen Aspekten verwandt und weisen in anderen Aspekten offensichtliche Unterschiede auf. In diesem Artikel werden die Verbindungen und Unterschiede zwischen der Go-Sprache und JavaScript untersucht und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis dieser beiden Programmiersprachen zu erleichtern. Verbindung: Sowohl die Go-Sprache als auch JavaScript sind plattformübergreifend und können auf verschiedenen Betriebssystemen ausgeführt werden.

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

Aufrufsyntax der übergeordneten Klasse in PHP8.0 Aufrufsyntax der übergeordneten Klasse in PHP8.0 May 14, 2023 pm 01:00 PM

PHP ist eine serverseitige Skriptsprache, die in der Webentwicklung weit verbreitet ist. Die Version PHP 8.0 führt eine neue Aufrufsyntax für übergeordnete Klassen ein, um die objektorientierte Programmierung komfortabler und prägnanter zu gestalten. In PHP können wir durch Vererbung eine übergeordnete Klasse und eine oder mehrere Unterklassen erstellen. Unterklassen können die Eigenschaften und Methoden der übergeordneten Klasse erben und ihre Funktionalität ändern oder erweitern, indem sie die Methoden der übergeordneten Klasse überschreiben. Wenn wir bei der normalen PHP-Vererbung die Methode der übergeordneten Klasse in der Unterklasse aufrufen möchten, müssen wir das Schlüsselwort parent verwenden, um auf die übergeordnete Klasse zu verweisen

See all articles