Suche…


Winkelausdrücke - Text vs. Nummer

Dieses Beispiel zeigt, wie Angular-Ausdrücke ausgewertet werden, wenn type="text" und type="number" für das Eingabeelement verwendet werden. Betrachten Sie den folgenden Controller und die folgende Ansicht:

Regler

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

 app.controller('ctrl', function($scope) {
     $scope.textInput = {
         value: '5'
     };     
     $scope.numberInput = {
         value: 5
     };
 });

Aussicht

<div ng-app="app" ng-controller="ctrl">
    <input type="text" ng-model="textInput.value">
    {{ textInput.value + 5 }}
    <input type="number" ng-model="numberInput.value">
    {{ numberInput.value + 5 }}
</div>
  • Bei der Verwendung von + in einem Ausdruck gebunden eingegeben Text, wird der Betreiber die Saiten (erstes Beispiel) verketten, 55 auf dem Bildschirm angezeigt wird * .
  • Bei der Verwendung von + in einem Ausdruck zu Nummerneingabe gebunden, kehrt die Bedienperson die Summe der Zahlen (zweites Beispiel), 10 auf dem Bildschirm angezeigt wird * .

* - Bis der Benutzer den Wert im Eingabefeld ändert, ändert sich die Anzeige danach entsprechend.

Arbeitsbeispiel

ngRepeat

ng-repeat ist eine integrierte Anweisung in Angular, mit der Sie ein Array oder ein Objekt iterieren und ein Element für jedes Element in der Auflistung einmal wiederholen können.

Wiederholen Sie ein Array

<ul>
    <li ng-repeat="item in itemCollection">
       {{item.Name}}
    </li>
</ul>

Woher:
item = einzelner Artikel in der Sammlung
itemCollection = Das Array, das Sie durchlaufen


Wiederholen Sie ein Objekt

<ul>
    <li ng-repeat="(key, value) in myObject">
       {{key}} : {{value}}
    </li>
</ul>

Woher:
key = der Name der Eigenschaft
value = der Wert der Eigenschaft
myObject = das Objekt, das Sie durchlaufen


Filtern Sie Ihren Wiederholungsvorgang nach Benutzereingaben

<input type="text" ng-model="searchText">
<ul>
    <li ng-repeat="string in stringArray | filter:searchText">
       {{string}}
    </li>
</ul>

Woher:
searchText = Der Text, nach dem der Benutzer die Liste filtern möchte
stringArray = ein Array von Strings, zB ['string', 'array']

Sie können die gefilterten Elemente auch an anderer Stelle anzeigen oder referenzieren, indem Sie der Filterausgabe einen Alias ​​mit as aliasName .

<input type="text" ng-model="searchText">
<ul>
    <li ng-repeat="string in stringArray | filter:searchText as filteredStrings">
       {{string}}
    </li>
</ul>
<p>There are {{filteredStrings.length}} matching results</p>

ng-repeat-start und ng-repeat-end

Um mehrere DOM-Elemente durch Definieren eines Start- und Endpunkts zu ng-repeat-start können Sie die Direktiven ng-repeat-start und ng-repeat-end .

<ul>
    <li ng-repeat-start="item in [{a: 1, b: 2}, {a: 3, b:4}]">
        {{item.a}}
    </li>
    <li ng-repeat-end>
        {{item.b}}
    </li>
</ul>

Ausgabe:

  • 1
  • 2
  • 3
  • 4

ng-repeat-start mit ng-repeat-end .

Variablen

ng-repeat macht diese Variablen auch innerhalb des Ausdrucks verfügbar

Variable Art Einzelheiten
$index Nummer Entspricht dem Index der aktuellen Iteration ($ index ==== 0 wird beim ersten iterierten Element als wahr ausgewertet; siehe $first ).
$first Boolean Wird beim ersten iterierten Element als wahr ausgewertet
$last Boolean Bewertet am letzten iterierten Element als wahr
$middle Boolean Wird als wahr ausgewertet, wenn das Element zwischen $first und $last
$even Boolean Wertet bei einer geradzahligen Iteration den $index%2===0 true (entspricht $index%2===0 ).
$odd Boolean Wird bei einer ungeradzahligen Iteration als wahr $index%2===1 (entspricht $index%2===1 )

Überlegungen zur Leistung

Das Rendern von ngRepeat kann langsam werden, besonders wenn Sie große Sammlungen verwenden.

Wenn die Objekte in der Auflistung über eine Bezeichner-Eigenschaft verfügen, sollten Sie immer track by dem Bezeichner statt nach dem gesamten Objekt, der Standardfunktion, nachverfolgen. Wenn keine Kennung vorhanden ist, können Sie immer den integrierten $index .

<div ng-repeat="item in itemCollection track by item.id">
<div ng-repeat="item in itemCollection track by $index">

Umfang von ngRepeat

ngRepeat immer einen isolierten ngRepeat muss sorgfältig darauf geachtet werden, ob auf den übergeordneten Bereich innerhalb der Wiederholung zugegriffen werden muss.

Hier ein einfaches Beispiel, das zeigt, wie Sie einen Wert in Ihrem übergeordneten Bereich von einem Click-Ereignis in ngRepeat .

scope val:  {{val}}<br/>
ctrlAs val: {{ctrl.val}}
<ul>
    <li ng-repeat="item in itemCollection">
        <a href="#" ng-click="$parent.val=item.value; ctrl.val=item.value;">
            {{item.label}} {{item.value}}
        </a>
    </li>
</ul>

$scope.val = 0;
this.val = 0;

$scope.itemCollection = [{
    id: 0,
    value: 4.99,
    label: 'Football'
},
{
    id: 1,
    value: 6.99,
    label: 'Baseball'
},
{
    id: 2,
    value: 9.99,
    label: 'Basketball'
}];

Wenn bei ng-click nur val = item.value vorhanden war, wird der val im übergeordneten Bereich aufgrund des isolierten Bereichs nicht aktualisiert. Deshalb wird auf den übergeordneten Bereich mit der $parent Referenz oder mit der controllerAs Syntax zugegriffen (z. B. ng-controller="mainController as ctrl" ).

Verschachtelte ng-Wiederholung

Sie können auch verschachtelte Wiederholungen verwenden.

<div ng-repeat="values in test">
    <div ng-repeat="i in values">
      [{{$parent.$index}},{{$index}}] {{i}}
    </div>
</div>

var app = angular.module("myApp", []);
app.controller("ctrl", function($scope) {
  $scope.test = [
    ['a', 'b', 'c'],
    ['d', 'e', 'f']
  ];
});

Um auf den Index des übergeordneten ng-repeat innerhalb des untergeordneten ng-repeat zuzugreifen, können Sie $parent.$index .

ngShow und ngHide

Die Direktive ng-show zeigt oder versteckt das HTML-Element basierend darauf, ob der übergebene Ausdruck wahr oder falsch ist. Wenn der Wert des Ausdrucks falsch ist, wird er ausgeblendet. Wenn es wahr ist, wird es sich zeigen.

Die ng-hide Anweisung ist ähnlich. Wenn der Wert jedoch falsch ist, wird das HTML-Element angezeigt. Wenn der Ausdruck wahr ist, wird er verborgen.

Arbeitsbeispiel für JSBin

Controller :

var app = angular.module('app', []);
  
angular.module('app')
  .controller('ExampleController', ExampleController);
 
function ExampleController() {
  
  var vm = this;
  
  //Binding the username to HTML element
  vm.username = '';
  
  //A taken username
  vm.taken_username = 'StackOverflow';
  
}

Aussicht

<section ng-controller="ExampleController as main">
    
    <p>Enter Password</p>
    <input ng-model="main.username" type="text">
    
    <hr>
    
    <!-- Will always show as long as StackOverflow is not typed in -->
    <!-- The expression is always true when it is not StackOverflow -->
    <div style="color:green;" ng-show="main.username != main.taken_username">
      Your username is free to use!
    </div>
    
    <!-- Will only show when StackOverflow is typed in -->
    <!-- The expression value becomes falsy -->
    <div style="color:red;" ng-hide="main.username != main.taken_username">
      Your username is taken!
    </div>
    
    <p>Enter 'StackOverflow' in username field to show ngHide directive.</p>
    
 </section>

ngOptions

ngOptions ist eine Direktive, die das Erstellen einer HTML-Dropdown-Box für die Auswahl eines Elements aus einem Array vereinfacht, das in einem Modell gespeichert wird. Das ngOptions-Attribut wird verwendet, um dynamisch eine Liste von <option> -Elementen für das <select> -Element mithilfe des Arrays oder Objekts zu erstellen, das durch Auswertung des ngOptions-Verständnisausdrucks erhalten wird.

Mit ng-options das Markup auf ein select-Tag reduziert werden, und die Direktive erstellt das gleiche select:

<select ng-model="selectedFruitNgOptions" 
        ng-options="curFruit as curFruit.label for curFruit in fruit">
</select>

Es gibt anthere Weg zur Schaffung von select unter Verwendung ng-repeat , aber es wird nicht empfohlen , zu verwenden ng-repeat , wie es vor allem für allgemeine Zwecke verwendet wird , wie die forEach nur Schleife. Während sich ng-options speziell für das Erstellen von select Tag ng-options eignet.

Das obige Beispiel wäre ng-repeat

<select ng-model="selectedFruit">
    <option ng-repeat="curFruit in fruit" value="{{curFruit}}">
        {{curFruit.label}}
    </option>
</select>

VOLLES BEISPIEL

Schauen wir uns das obige Beispiel auch im Detail an.

Datenmodell für das Beispiel:

$scope.fruit = [
    { label: "Apples", value: 4, id: 2 },
    { label: "Oranges", value: 2, id: 1 },
    { label: "Limes", value: 4, id: 4 },
    { label: "Lemons", value: 5, id: 3 }
];

<!-- label for value in array -->
<select ng-options="f.label for f in fruit" ng-model="selectedFruit"></select>

Bei Auswahl erzeugtes Options-Tag:

 <option value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Auswirkungen:

f.label ist das Label der <option> und der Wert enthält das gesamte Objekt.

VOLLES BEISPIEL


<!-- select as label for value in array -->
<select ng-options="f.value as f.label for f in fruit" ng-model="selectedFruit"></select>

Bei Auswahl erzeugtes Options-Tag:

 <option value="4"> Apples </option>

Auswirkungen:

f.value (4) ist in diesem Fall der Wert, wenn die Beschriftung noch gleich ist.

VOLLES BEISPIEL


<!-- label group by group for value in array -->
<select ng-options="f.label group by f.value for f in fruit" ng-model="selectedFruit"></select>

Bei Auswahl erzeugtes Options-Tag:

<option value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Auswirkungen:

Optionen werden nach ihrem value gruppiert. Optionen mit demselben value fallen unter eine Kategorie

VOLLES BEISPIEL


<!-- label disable when disable for value in array -->
<select ng-options="f.label disable when f.value == 4 for f in fruit" ng-model="selectedFruit"></select>

Bei Auswahl erzeugtes Options-Tag:

<option disabled="" value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Auswirkungen:

"Äpfel" und "Limes" werden deaktiviert (kann nicht ausgewählt werden), weil die Bedingung disable when f.value==4 . Alle Optionen mit dem value=4 müssen deaktiviert werden

VOLLES BEISPIEL


<!-- label group by group for value in array track by trackexpr -->
<select ng-options="f.value as f.label group by f.value for f in fruit track by f.id" ng-model="selectedFruit"></select>

Bei Auswahl erzeugtes Options-Tag:

<option value="4"> Apples </option>

Auswirkungen:

Es gibt nicht sichtbare Änderung bei der Verwendung von trackBy , aber Angular wird durch die Änderungen erkennen id statt durch Bezugnahme , die die meisten ist immer eine bessere Lösung.

VOLLES BEISPIEL


<!-- label for value in array | orderBy:orderexpr track by trackexpr -->
<select ng-options="f.label for f in fruit | orderBy:'id' track by f.id" ng-model="selectedFruit"></select>

Bei Auswahl erzeugtes Options-Tag:

<option disabled="" value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Auswirkungen:

orderBy ist ein AngularJS-Standardfilter, der die Optionen in aufsteigender Reihenfolge (standardmäßig) anordnet, so dass "Oranges" in diesem ersten Platz erscheint, da seine id = 1 ist.

VOLLES BEISPIEL


Alle <select> mit ng-options müssen mit einem ng-model verbunden sein.

ngModel

Mit ng-model können Sie eine Variable an jeden Eingabefeldtyp binden. Sie können die Variable mit doppelten geschweiften Klammern anzeigen, z. B. {{myAge}} .

<input type="text" ng-model="myName">
<p>{{myName}}</p>

Wenn Sie das Eingabefeld eingeben oder auf irgendeine Weise ändern, wird der Wert im Absatz sofort aktualisiert.

In diesem Fall steht die Variable ng-model in Ihrem Controller als $scope.myName . Wenn Sie die controllerAs Syntax verwenden:

<div ng-controller="myCtrl as mc">
    <input type="text" ng-model="mc.myName">
    <p>{{mc.myName}}</p>
</div>

Sie müssen auf den Bereich des Controllers verweisen, indem Sie den im Attribut ng-controller definierten Alias ​​des Controllers an die Variable ng-model anhängen. Auf diese Weise müssen Sie nicht $scope in Ihren Controller injizieren, um Ihre ng-model-Variable zu referenzieren. Die Variable steht als this.myName in der Controller-Funktion zur Verfügung.

ngClass

Nehmen wir an, Sie müssen den Status eines Benutzers anzeigen und haben mehrere mögliche CSS-Klassen, die verwendet werden können. Angular macht es sehr einfach, aus einer Liste mit mehreren möglichen Klassen auszuwählen, mit denen Sie eine Objektliste mit Bedingungen angeben können. Angular kann die richtige Klasse basierend auf der Wahrhaftigkeit der Bedingungen verwenden.

Ihr Objekt sollte Schlüssel / Wert-Paare enthalten. Der Schlüssel ist ein Klassenname, der angewendet wird, wenn der Wert (bedingt) als wahr ausgewertet wird.

<style>
    .active { background-color: green; color: white; }
    .inactive { background-color: gray; color: white; }
    .adminUser { font-weight: bold; color: yellow; }
    .regularUser { color: white; }
</style>

<span ng-class="{ 
    active: user.active, 
    inactive: !user.active, 
    adminUser: user.level === 1, 
    regularUser: user.level === 2 
}">John Smith</span>

Angular das überprüfen $scope.user Objekt das zu sehen , active Status und die level Nummer. Abhängig von den Werten in diesen Variablen wendet Angular den passenden Stil auf den <span> .

ngIf

ng-if ist eine Anweisung ähnlich wie ng-show , fügt das Element jedoch aus dem DOM ein oder entfernt es, anstatt es einfach auszublenden. In Angular 1.1.5 wurde die ng-If-Direktive eingeführt. Sie können die ng-if-Direktive ab Version 1.1.5 verwenden. Dies ist nützlich, da Angular keine Digests für Elemente innerhalb einer entfernten ng-if Angular insbesondere für komplexe Datenbindungen weniger Workload benötigt.

Im Gegensatz zu ng-show die Direktive ng-if einen untergeordneten Bereich, der prototypische Vererbung verwendet. Das bedeutet, dass das Festlegen eines primitiven Werts für den untergeordneten Bereich nicht für den übergeordneten Bereich gilt. Um ein Grundelement für den übergeordneten Bereich festzulegen, muss die $parent Eigenschaft für den untergeordneten Bereich verwendet werden.

JavaScript

angular.module('MyApp', []);

angular.module('MyApp').controller('myController', ['$scope', '$window', function myController($scope, $window) {
    $scope.currentUser= $window.localStorage.getItem('userName');
}]);

Aussicht

<div ng-controller="myController">
    <div ng-if="currentUser">
        Hello, {{currentUser}}
    </div>
    <div ng-if="!currentUser">
        <a href="/login">Log In</a>
        <a href="/register">Register</a>
    </div>
</div>

DOM Wenn currentUser nicht currentUser ist

<div ng-controller="myController">
    <div ng-if="currentUser">
        Hello, {{currentUser}}
    </div>
    <!-- ng-if: !currentUser -->
</div>

DOM Wenn currentUser ist

<div ng-controller="myController">
    <!-- ng-if: currentUser -->
    <div ng-if="!currentUser">
        <a href="/login">Log In</a>
        <a href="/register">Register</a>
    </div>
</div>

Arbeitsbeispiel

Funktionsversprechen

Die ngIf-Direktive akzeptiert auch Funktionen, die logisch die Rückgabe von true oder false erfordern.

<div ng-if="myFunction()">
    <span>Span text</span>
</div>

Der Bereichstext wird nur angezeigt, wenn die Funktion true zurückgibt.

$scope.myFunction = function() {
    var result = false;
    // Code to determine the boolean value of result 
    return result;
};

Als Angular-Ausdruck akzeptiert die Funktion jede Art von Variablen.

ngMouseenter und ngMouseleave

Die Direktiven ng-mouseenter und ng-mouseleave sind nützlich, um Ereignisse auszuführen und das CSS-Styling anzuwenden, wenn Sie sich in Ihren DOM-Elementen befinden.

Die ng-mouseenter Direktive führt einen Ausdruck aus, ng-mouseenter ein Mausereignis eintritt (wenn der Benutzer den Mauszeiger über das DOM-Element bewegt, in dem sich diese Direktive befindet).

HTML

<div ng-mouseenter="applyStyle = true" ng-class="{'active': applyStyle}">

Wenn der Benutzer im obigen Beispiel mit der Maus über das div , wird applyStyle auf true , wodurch wiederum die .active CSS-Klasse auf die ng-class .active .

Die ng-mouseleave führt einen Ausdruck aus, der ein Mouse-Exit-Ereignis ist.

HTML

<div ng-mouseenter="applyStyle = true" ng-mouseleaver="applyStyle = false" ng-class="{'active': applyStyle}">

Wenn Sie das erste Beispiel erneut verwenden, wird die .active Klasse jetzt entfernt, wenn der Benutzer den Mauszeiger aus dem div entfernt.

ngDisabled

Diese Direktive ist nützlich, um Eingabeereignisse basierend auf bestimmten vorhandenen Bedingungen zu begrenzen.

Die Direktive ng-disabled akzeptiert einen Ausdruck, der entweder einen Wahrheitswert oder einen Falschwert ergeben soll.

ng-disabled wird verwendet, um das disabled Attribut bedingt auf ein input anzuwenden.

HTML

<input type="text" ng-model="vm.name">

<button ng-disabled="vm.name.length===0" ng-click="vm.submitMe">Submit</button>

vm.name.length===0 wird als "true" ausgewertet, wenn die Länge der input vm.name.length===0 beträgt. vm.name.length===0 , dass die Schaltfläche deaktiviert wird, sodass der Benutzer das Klickereignis von ng-click

ngDblclick

Die Anweisung ng-dblclick ist hilfreich, wenn Sie ein Doppelklickereignis in Ihre DOM-Elemente ng-dblclick möchten.

Diese Direktive akzeptiert einen Ausdruck

HTML

<input type="number" ng-model="num = num + 1" ng-init="num=0">

<button ng-dblclick="num++">Double click me</button>

Im obigen Beispiel wird der am input gehaltene Wert erhöht, wenn die Schaltfläche doppelt angeklickt wird.

Eingebaute Richtlinien-Spickzettel

ng-app Legt den AngularJS-Abschnitt fest.

ng-init Legt einen Standardvariablenwert fest.

ng-bind Alternative zur {{}} Vorlage.

ng-bind-template Bindet mehrere Ausdrücke an die Ansicht.

ng-non-bindable dass die Daten nicht bindbar sind.

ng-bind-html Bindet die innere HTML-Eigenschaft eines HTML-Elements.

ng-change Wertet den angegebenen Ausdruck aus, wenn der Benutzer die Eingabe ändert.

ng-checked Legt das Kontrollkästchen fest.

ng-class Legt die CSS-Klasse dynamisch fest.

ng-cloak Verhindert die Anzeige des Inhalts, bis AngularJS die Kontrolle übernommen hat.

ng-click Führt eine Methode oder einen Ausdruck aus, wenn auf ein Element geklickt wird.

ng-controller Fügt der Ansicht eine Controller-Klasse hinzu.

ng-disabled Steuert die deaktivierte Eigenschaft des Formularelements

ng-form Legt ein Formular fest

ng-href Binde AngularJS-Variablen dynamisch an das href-Attribut.

ng-include Wird verwendet, um ein externes HTML-Fragment abzurufen, zu kompilieren und in Ihre Seite aufzunehmen.

ng-if Abhängig von einem Ausdruck ein Element im DOM entfernen oder neu erstellen

ng-switch Bedingtes Umschalten der Steuerung basierend auf übereinstimmenden Ausdrücken.

ng-model Bindet Elemente der Eingabe, Auswahl, Textbereiche usw. an die Modelleigenschaft.

ng-readonly Wird verwendet, um das readonly-Attribut für ein Element festzulegen.

ng-repeat Wird verwendet, um jedes Element in einer Sammlung zu durchlaufen, um eine neue Vorlage zu erstellen.

ng-selected Wird verwendet, um die ausgewählte Option im Element festzulegen.

ng-show/ng-hide Elemente auf Basis eines Ausdrucks anzeigen / ausblenden.

ng-src Binden Sie AngularJS-Variablen dynamisch an das Attribut src.

ng-submit submit Bindungswinkelausdrücke für Onsubmit-Ereignisse.

ng-value Bindet Winkelausdrücke an den Wert von.

ng-required Bindungswinkelausdrücke für Onsubmit-Ereignisse.

ng-style Legt den CSS-Stil für ein HTML-Element fest.

ng-pattern Fügt den Musterprüfer zu ngModel hinzu.

ng-maxlength Fügt den maxlength-Validator zu ngModel hinzu.

ng-minlength Fügt den Minlength-Validator zu ngModel hinzu.

ng-classeven Funktioniert in Verbindung mit ngRepeat und wird nur in ungeraden (geraden) Zeilen wirksam.

ng-classodd Funktioniert in Verbindung mit ngRepeat und wird nur für ungerade (gerade) Zeilen wirksam.

ng-cut Wird verwendet, um ein benutzerdefiniertes Verhalten beim Ausschneidereignis anzugeben.

ng-copy Wird verwendet, um ein benutzerdefiniertes Verhalten beim Kopierereignis anzugeben.

ng-paste Wird verwendet, um ein benutzerdefiniertes Verhalten beim Einfügeereignis anzugeben.

ng-options Wird verwendet, um eine Liste von Elementen für das Element dynamisch zu generieren.

ng-list Wird verwendet, um einen String in eine Liste umzuwandeln, die auf dem angegebenen Trennzeichen basiert.

ng-open Wird verwendet, um das Attribut open für das Element festzulegen, wenn der Ausdruck in ngOpen wahr ist.

Quelle (etwas bearbeitet)

ngClick

Die Anweisung ng-click fügt einem DOM-Element ein Ereignis click hinzu.

Mit ng-click Anweisung ng-click können Sie ein benutzerdefiniertes Verhalten angeben, wenn auf ein Element von DOM geklickt wird.

Dies ist nützlich, wenn Sie Klickereignisse an Schaltflächen anhängen und an Ihrem Controller behandeln möchten.

Diese Direktive akzeptiert einen Ausdruck mit dem als $event verfügbaren $event

HTML

<input ng-click="onClick($event)">Click me</input>

Regler

.controller("ctrl", function($scope) {   
    $scope.onClick = function(evt) {
        console.debug("Hello click event: %o ",evt);
    } 
})

HTML

<button ng-click="count = count + 1" ng-init="count=0">
  Increment
</button>
<span>
  count: {{count}}
</span>

HTML

<button ng-click="count()" ng-init="count=0">
  Increment
</button>
<span>
  count: {{count}}
</span>

Regler

...

$scope.count = function(){
    $scope.count = $scope.count + 1;
}
...

Wenn Sie auf die Schaltfläche onClick , wird beim onClick Funktion onClick "Hallo onClick " gefolgt vom Ereignisobjekt gedruckt.

ngRequired

ng-required fügt das required Validierungsattribut einem Element hinzu oder entfernt es. Dadurch wird der require Validierungsschlüssel für die input aktiviert und deaktiviert.

Es wird verwendet, um optional festzulegen, ob ein input einen nicht leeren Wert haben muss. Die Direktive ist hilfreich beim Entwerfen der Validierung komplexer HTML-Formulare.

HTML

<input type="checkbox" ng-model="someBooleanValue">
<input type="text" ng-model="username" ng-required="someBooleanValue">

ng-Modell-Optionen

ng-model-options können Sie das Standardverhalten von ng-model ändern. Mit dieser Anweisung können Sie Ereignisse registrieren, die ausgelöst werden, wenn das ng-model aktualisiert wird, und einen Entprellungseffekt hinzufügen.

Diese Direktive akzeptiert einen Ausdruck, der ein Definitionsobjekt oder einen Verweis auf einen Bereichswert auswertet.

Beispiel:

<input type="text" ng-model="myValue" ng-model-options="{'debounce': 500}">

Das obige Beispiel fügt einen Debounce-Effekt von 500 Millisekunden für myValue , wodurch das Modell 500 ms aktualisiert wird, nachdem der Benutzer die input (das heißt, wenn die Aktualisierung von myValue abgeschlossen ist).

Verfügbare Objekteigenschaften

  1. updateOn : updateOn an, welches Ereignis an die Eingabe gebunden werden soll

    ng-model-options="{ updateOn: 'blur'}" // will update on blur
    
  2. debounce : debounce eine Verzögerung von einigen Millisekunden gegenüber dem Modellupdate an

    ng-model-options="{'debounce': 500}" // will update the model after 1/2 second
    
  3. allowInvalid : Ein boolesches Flag, das einen ungültigen Wert für das Modell ermöglicht, wodurch die Standard-Formularvalidierung umgangen wird. Standardmäßig werden diese Werte als undefined behandelt.

  4. getterSetter : Ein boolesches Flag, das angibt, ob das ng-model als Getter / Setter-Funktion anstelle eines einfachen Modellwerts behandelt werden soll. Die Funktion wird dann ausgeführt und gibt den Modellwert zurück.

    Beispiel:

    <input type="text" ng-model="myFunc" ng-model-options="{'getterSetter': true}">
    
    $scope.myFunc = function() {return "value";}
    
  5. timezone : Definiert die Zeitzone für das Modell, wenn date oder time eingegeben time . Typen

ngCloak

Die ngCloak Direktive wird verwendet, um zu verhindern, dass die Angular-HTML-Vorlage vom Browser kurz in ihrem rohen (nicht kompilierten) Formular angezeigt wird, während Ihre Anwendung geladen wird. - Quelle anzeigen

HTML

<div ng-cloak>
  <h1>Hello {{ name }}</h1>
</div>

ngCloak kann auf das body-Element angewendet werden. Die bevorzugte Anwendung besteht jedoch darin, mehrere ngCloak-Anweisungen auf kleine Bereiche der Seite anzuwenden, um eine progressive Wiedergabe der Browseransicht zu ermöglichen.

Die ngCloak Direktive enthält keine Parameter.

Siehe auch: Verhindern des Flimmerns

ngInclude

Mit ng-include können Sie die Steuerung eines Teils der Seite an einen bestimmten Controller delegieren. Möglicherweise möchten Sie dies tun, weil die Komplexität dieser Komponente so wird, dass Sie die gesamte Logik in einem dedizierten Controller kapseln möchten.

Ein Beispiel ist:

  <div ng-include
       src="'/gridview'"
       ng-controller='gridController as gc'>
  </div>

Beachten Sie, dass der /gridview vom Webserver als eindeutige und legitime URL /gridview werden muss.

Beachten Sie auch, dass das src -attribute einen Angular-Ausdruck akzeptiert. Dies kann beispielsweise eine Variable oder ein Funktionsaufruf sein oder, wie in diesem Beispiel, eine String-Konstante. In diesem Fall müssen Sie sicherstellen, dass die Quell-URL in einfache Anführungszeichen gesetzt wird , damit sie als String-Konstante ausgewertet wird. Dies ist eine häufige Verwirrung.

In der /gridview HTML- /gridview können Sie auf den gridController so verweisen, als ob er um die Seite gewickelt wäre, zB:

<div class="row">
  <button type="button" class="btn btn-default" ng-click="gc.doSomething()"></button>
</div>

ngSrc

Die Verwendung eines Angular-Markups wie {{hash}} in einem SRC-Attribut funktioniert nicht richtig. Der Browser ruft die URL mit dem wörtlichen Text {{hash}} bis Angular den Ausdruck in {{hash}} . ng-src Direktive ng-src überschreibt das ursprüngliche src Attribut für das Image-Tag-Element und löst das Problem

<div ng-init="pic = 'pic_angular.jpg'">
    <h1>Angular</h1>
    <img ng-src="{{pic}}">
</div>

ngPattern

Die Anweisung ng-pattern akzeptiert einen Ausdruck, der ein reguläres Ausdrucksmuster ergibt, und verwendet dieses Muster, um eine Texteingabe zu überprüfen.

Beispiel:

Nehmen wir an, wir möchten, dass ein <input> -Element gültig wird, wenn sein Wert (ng-model) eine gültige IP-Adresse ist.

Vorlage:

<input type="text" ng-model="ipAddr" ng-pattern="ipRegex" name="ip" required>

Regler:

$scope.ipRegex = /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/;

ngValue

Wird meist unter ng-repeat NgValue ist nützlich, wenn Sie Listen von Optionsfeldern mit ngRepeat dynamisch generieren

<script>
   angular.module('valueExample', [])
     .controller('ExampleController', ['$scope', function($scope) {
       $scope.names = ['pizza', 'unicorns', 'robots'];
       $scope.my = { favorite: 'unicorns' };
     }]);
</script>
 <form ng-controller="ExampleController">
   <h2>Which is your favorite?</h2>
     <label ng-repeat="name in names" for="{{name}}">
       {{name}}
       <input type="radio"
              ng-model="my.favorite"
              ng-value="name"
              id="{{name}}"
              name="favorite">
     </label>
   <div>You chose {{my.favorite}}</div>
 </form>

Arbeits plnkr

ngCopy

Die Direktive ngCopy gibt das Verhalten an, das für ein ngCopy werden soll.

Verhindern, dass ein Benutzer Daten kopiert

<p ng-copy="blockCopy($event)">This paragraph cannot be copied</p>

In der Steuerung

$scope.blockCopy = function(event) {
    event.preventDefault();
    console.log("Copying won't work");
}

ngPaste

Die Anweisung ngPaste gibt ein benutzerdefiniertes Verhalten an, das ausgeführt werden soll, wenn ein Benutzer Inhalt ngPaste

<input ng-paste="paste=true" ng-init="paste=false" placeholder='paste here'>
pasted: {{paste}}

ngHref

ngHref wird anstelle des href-Attributs verwendet, wenn im href-Wert ein Winkelausdruck vorliegt. Die Direktive ngHref überschreibt das ursprüngliche href-Attribut eines html-Tags mit dem href-Attribut, z. B. tag, tag usw.

Die Anweisung ngHref stellt sicher, dass die Verknüpfung nicht unterbrochen wird, auch wenn der Benutzer auf die Verknüpfung klickt, bevor AngularJS den Code ausgewertet hat.

Beispiel 1

<div ng-init="linkValue = 'http://stackoverflow.com'">
    <p>Go to <a ng-href="{{linkValue}}">{{linkValue}}</a>!</p>
</div>

Beispiel 2 In diesem Beispiel wird der Href-Wert dynamisch aus dem Eingabefeld abgerufen und als Href-Wert geladen.

<input ng-model="value" />
<a id="link" ng-href="{{value}}">link</a>

Beispiel 3

<script>
angular.module('angularDoc', [])
.controller('myController', function($scope) {
  // Set some scope value.
  // Here we set bootstrap version.
  $scope.bootstrap_version = '3.3.7';
   
  // Set the default layout value
  $scope.layout = 'normal';
});
</script>
<!-- Insert it into Angular Code -->
<link rel="stylesheet" ng-href="//maxcdn.bootstrapcdn.com/bootstrap/{{ bootstrap_version }}/css/bootstrap.min.css">
<link rel="stylesheet" ng-href="layout-{{ layout }}.css">

ngList

Die ng-list Direktive wird verwendet, um eine begrenzte Zeichenfolge aus einer Texteingabe in ein String-Array oder umgekehrt zu konvertieren.

Die ng-list Direktive verwendet ein Standardtrennzeichen von ", " (Komma-Leerzeichen).

Sie können das Trennzeichen manuell festlegen, indem Sie ng-list ein Trennzeichen wie dieses zuweisen. ng-list="; " .

In diesem Fall wird das Trennzeichen auf ein Semikolon gefolgt von einem Leerzeichen gesetzt.

Standardmäßig hat ng-list ein Attribut ng-trim das auf true gesetzt ist. ng-trim bei false wird der Leerraum in Ihrem Trennzeichen berücksichtigt. Standardmäßig berücksichtigt ng-list keine Leerräume, es sei denn, Sie legen ng-trim="false" .

Beispiel:

angular.module('test', [])
  .controller('ngListExample', ['$scope', function($scope) {
    $scope.list = ['angular', 'is', 'cool!'];
}]);

Ein Kundenbegrenzer wird gesetzt ; . Das Modell des Eingabefelds wird auf das Array festgelegt, das für den Bereich erstellt wurde.

  <body ng-app="test" ng-controller="ngListExample">
    <input ng-model="list" ng-list="; " ng-trim="false">
  </body>

Das Eingabefeld wird mit dem Inhalt angezeigt: angular; is; cool!



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow