Zoeken…


Hoekige uitdrukkingen - Tekst versus nummer

Dit voorbeeld laat zien hoe hoekuitdrukkingen worden geëvalueerd bij gebruik van type="text" en type="number" voor het invoerelement. Overweeg de volgende controller en bekijk:

controleur

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

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

Visie

<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>
  • Wanneer u + in een uitdrukking die aan tekstinvoer is gebonden, zal de operator de tekenreeksen samenvoegen (eerste voorbeeld), waarbij 55 op het scherm wordt weergegeven * .
  • Wanneer u + in een uitdrukking die aan nummerinvoer is gebonden, retourneert de operator de som van de getallen (tweede voorbeeld), waarbij 10 op het scherm wordt weergegeven * .

* - Dat is totdat de gebruiker de waarde in het invoerveld wijzigt, daarna zal het display dienovereenkomstig veranderen.

Werkend voorbeeld

ngRepeat

ng-repeat is een ingebouwde richtlijn in Angular waarmee je een array of een object kunt herhalen en waarmee je een element voor elk item in de collectie een keer kunt herhalen.

Herhaal een array

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

Waar:
item = individueel item in de collectie
itemCollection = De array die u doorloopt


ng-herhaal een object

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

Waar:
key = de eigenschapsnaam
waarde = de waarde van het onroerend goed
myObject = het object dat u herhaalt


filter uw ng-repeat op gebruikersinvoer

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

Waar:
searchText = de tekst waarop de gebruiker de lijst wil filteren
stringArray = een array van strings, bijvoorbeeld ['string', 'array']

U kunt de gefilterde items ook elders weergeven of as aliasName door de filteruitvoer een alias toe te wijzen as aliasName , zoals hier:

<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 en ng-repeat-end

Om meerdere DOM-elementen te herhalen door een begin- en eindpunt te definiëren, kunt u de richtlijnen ng-repeat-start en 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>

Output:

  • 1
  • 2
  • 3
  • 4

Het is belangrijk om ng-repeat-start altijd te sluiten met ng-repeat-end .

Variabelen

ng-repeat deze variabelen ook in de uitdrukking weergegeven

veranderlijk Type Details
$index Aantal Is gelijk aan de index van de huidige iteratie ($ index === 0 wordt geëvalueerd naar true bij het eerste iteratie-element; zie $first )
$first Boolean Evalueert naar waar bij het eerste iteratie-element
$last Boolean Evalueert naar waar bij het laatst herhaalde element
$middle Boolean Evalueert naar waar als het element tussen $first en $last
$even Boolean Evalueert naar true bij een even genummerde iteratie (gelijk aan $index%2===0 )
$odd Boolean Evalueert naar waar bij een oneven genummerde iteratie (gelijk aan $index%2===1 )

Prestatieoverwegingen

Rendering ngRepeat kan langzaam worden, vooral bij het gebruik van grote collecties.

Als de objecten in de collectie hebben een identificatie eigenschap, moet u altijd track by de identifier in plaats van het hele object, dat is de standaard functionaliteit. Als er geen ID aanwezig is, kunt u altijd de ingebouwde $index .

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

Reikwijdte van ng Herhaling

ngRepeat maakt altijd een geïsoleerd ngRepeat , dus wees voorzichtig als het ngRepeat binnen de herhaling moet worden gebruikt.

Hier is een eenvoudig voorbeeld dat laat zien hoe u een waarde in uw bovenliggende scope kunt instellen via een ngRepeat binnen 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'
}];

Als er alleen val = item.value bij ng-click , wordt de val in het bovenliggende bereik niet bijgewerkt vanwege het geïsoleerde bereik. Dat is waarom de bovenliggende scope toegankelijk is met $parent referentie of met de syntaxis van de controllerAs (bijv. ng-controller="mainController as ctrl" ).

Geneste ng-herhaling

U kunt ook geneste ng-herhaling gebruiken.

<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']
  ];
});

Om toegang te krijgen tot de index van bovenliggende ng-repeat in onderliggende ng-repeat, kunt u $parent.$index .

ngToon en ngVerbergen

De ng-show instructie toont of verbergt het HTML-element op basis van of de expressie die eraan is doorgegeven waar of onwaar is. Als de waarde van de uitdrukking vals is, wordt deze verborgen. Als het waar is, zal het blijken.

De richtlijn ng-hide is vergelijkbaar. Als de waarde echter vals is, wordt het HTML-element weergegeven. Wanneer de uitdrukking waarheidsgetrouw is, zal deze deze verbergen.

Werkend JSBin-voorbeeld

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';
  
}

Visie

<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 is een richtlijn die het maken van een html-vervolgkeuzelijst vereenvoudigt voor de selectie van een item uit een array die in een model wordt opgeslagen. Het attribuut ngOptions wordt gebruikt om dynamisch een lijst met <option> -elementen voor het element <select> te genereren met behulp van de array of het object dat is verkregen door de ngOptions-begripsexpressie te evalueren.

Met ng-options de markup worden gereduceerd tot slechts een select-tag en de richtlijn maakt dezelfde select:

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

Er is een andere manier om select opties te maken met ng-repeat , maar het wordt afgeraden om ng-repeat omdat het meestal wordt gebruikt voor algemene doeleinden, zoals de forEach to-loop. Terwijl ng-options specifiek is voor het maken van select tag-opties.

Bovenstaand voorbeeld zou het gebruik van ng-repeat zijn

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

VOLLEDIG VOORBEELD

Laten we het bovenstaande voorbeeld in detail bekijken, ook met enkele variaties erin.

Gegevensmodel voor het voorbeeld:

$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>

Optietag gegenereerd bij selectie:

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

Effecten:

f.label is het label van de <option> en de waarde bevat het hele object.

VOLLEDIG VOORBEELD


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

Optietag gegenereerd bij selectie:

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

Effecten:

f.value (4) is in dit geval de waarde terwijl het label nog steeds hetzelfde is.

VOLLEDIG VOORBEELD


<!-- 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>

Optietag gegenereerd bij selectie:

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

Effecten:

Opties worden gegroepeerd op basis van hun value . Opties met dezelfde value vallen onder één categorie

VOLLEDIG VOORBEELD


<!-- 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>

Optietag gegenereerd bij selectie:

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

Effecten:

"Appels" en "Limoenen" zullen worden uitgeschakeld (niet in staat om te selecteren) vanwege de disable when f.value==4 . Alle opties met value=4 worden uitgeschakeld

VOLLEDIG VOORBEELD


<!-- 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>

Optietag gegenereerd bij selectie:

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

Effecten:

Er is geen visuele verandering bij gebruik van trackBy , maar Angular zal veranderingen detecteren aan de hand van het id plaats van door verwijzing, wat meestal een betere oplossing is.

VOLLEDIG VOORBEELD


<!-- 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>

Optietag gegenereerd bij selectie:

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

Effecten:

orderBy is een AngularJS-standaardfilter die opties in oplopende volgorde rangschikt (standaard), zodat "Sinaasappels" hierin 1e wordt weergegeven, omdat de id = 1.

VOLLEDIG VOORBEELD


Aan alle <select> met ng-options moet het ng-model gekoppeld.

ngModel

Met ng-model kunt u een variabele binden aan elk type invoerveld. U kunt de variabele weergeven met dubbele accolades, bijvoorbeeld {{myAge}} .

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

Terwijl u het invoerveld typt of op enigerlei wijze wijzigt, ziet u de waarde direct in de alinea-update.

De variabele ng-model is in dit geval beschikbaar in uw controller als $scope.myName . Als u de syntaxis van de controllerAs :

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

U moet verwijzen naar het bereik van de controller door de alias van de controller die is gedefinieerd in het kenmerk ng-controller vooraf te laten aan de variabele ng-model. Op deze manier hoeft u $scope in uw controller te injecteren om naar uw variabele ng-model te verwijzen, de variabele zal beschikbaar zijn als this.myName in de functie van uw controller.

ngClass

Laten we aannemen dat u de status van een gebruiker moet weergeven en dat u verschillende mogelijke CSS-klassen hebt die kunnen worden gebruikt. Angular maakt het heel eenvoudig om te kiezen uit een lijst met verschillende mogelijke klassen waarmee u een objectlijst kunt opgeven met voorwaardelijke items. Angular is in staat om de juiste klasse te gebruiken op basis van de waarheid van de conditionals.

Uw object moet sleutel / waarde-paren bevatten. De sleutel is een klassenaam die wordt toegepast wanneer de waarde (voorwaardelijk) wordt geëvalueerd als waar.

<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 controleert het object $scope.user om de active status en het level nummer te zien. Afhankelijk van de waarden in die variabelen past Angular de overeenkomende stijl toe op de <span> .

ngIf

ng-if is een richtlijn vergelijkbaar met ng-show maar voegt het element in het DOM in of verwijdert het in plaats van het eenvoudigweg te verbergen. Angular 1.1.5 introduceerde ng-If-richtlijn. U kunt de ng-if-richtlijn gebruiken boven versies van 1.1.5. Dit is handig omdat Angular geen digests verwerkt voor elementen binnen een verwijderde ng-if de werklast van Angular wordt verminderd, met name voor complexe gegevensbindingen.

In tegenstelling tot ng-show creëert de ng-if richtlijn een onderliggende scope die gebruik maakt van prototypische overerving. Dit betekent dat het instellen van een primitieve waarde op de onderliggende scope niet van toepassing is op de ouder. Als u een primitief op het bovenliggende bereik wilt instellen, moet de eigenschap $parent op het onderliggende bereik worden gebruikt.

JavaScript

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

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

Visie

<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 Als currentUser is niet currentUser

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

DOM Als currentUser is niet gedefinieerd

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

Werkend voorbeeld

Functiebelofte

De ngIf-richtlijn accepteert ook functies, die logischerwijs vereisen dat true of false wordt geretourneerd.

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

De spantekst wordt alleen weergegeven als de functie true retourneert.

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

Zoals elke hoekuitdrukking accepteert de functie alle soorten variabelen.

ngMouseenter en ngMouseleave

De richtlijnen ng-mouseenter en ng-mouseleave zijn nuttig om gebeurtenissen uit te voeren en CSS-stijl toe te passen wanneer u in of uit uw DOM-elementen ng-mouseleave .

De ng-mouseenter instructie voert een expressie uit als een muis ng-mouseenter (wanneer de gebruiker zijn muisaanwijzer boven het DOM-element plaatst, bevindt deze richtlijn zich in)

HTML

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

In het bovenstaande voorbeeld, wanneer de gebruiker zijn muis op de div applyStyle , wordt applyStyle omgezet in true , wat op zijn beurt de .active CSS-klasse toepast op de ng-class .

De ng-mouseleave instructie voert een expressie uit als een ng-mouseleave (wanneer de gebruiker zijn muiscursor ng-mouseleave van het DOM-element waarin deze richtlijn zich bevindt)

HTML

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

.active het eerste voorbeeld, nu wanneer de gebruiker hem de muisaanwijzer van de div .active , wordt de .active klasse verwijderd.

ngDisabled

Deze richtlijn is nuttig om invoergebeurtenissen te beperken op basis van bepaalde bestaande omstandigheden.

De ng-disabled richtlijn accepteert en uitdrukking die moet evalueren naar een waarheidsgetrouwe of een valse waarde.

ng-disabled wordt gebruikt om het disabled kenmerk voorwaardelijk toe te passen op een input .

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 wordt geëvalueerd als true als de lengte van de input 0 is, waardoor de knop wordt uitgeschakeld, waardoor de gebruiker de klikgebeurtenis van ng-click

ngDblclick

De ng-dblclick instructie is handig wanneer u een dubbelklikgebeurtenis aan uw DOM-elementen wilt binden.

Deze richtlijn aanvaardt een uitdrukking

HTML

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

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

In het bovenstaande voorbeeld wordt de waarde die bij de input wordt vastgehouden verhoogd wanneer er dubbel op de knop wordt geklikt.

Ingebouwde richtlijnen Cheatsheet

ng-app Stelt het AngularJS-gedeelte in.

ng-init Stelt een standaard variabele waarde in.

ng-bind Alternatief voor {{}} sjabloon.

ng-bind-template Bindt meerdere expressies aan de weergave.

ng-non-bindable dat de gegevens niet bindend zijn.

ng-bind-html Bindt de interne HTML-eigenschap van een HTML-element.

ng-change Evalueert de opgegeven uitdrukking wanneer de gebruiker de invoer wijzigt.

ng-checked Zet het selectievakje aan.

ng-class Stelt de css-klasse dynamisch in.

ng-cloak Voorkomt dat de inhoud wordt weergegeven totdat AngularJS de controle heeft overgenomen.

ng-click Voert een methode of uitdrukking uit wanneer op het element wordt geklikt.

ng-controller Voegt een controllerklasse toe aan de weergave.

ng-disabled Bepaalt de eigenschap van het formulierelement

ng-form Stelt een formulier in

ng-href Bind AngularJS-variabelen dynamisch aan het href-kenmerk.

ng-include Wordt gebruikt om een extern HTML-fragment op te halen, te compileren en op te nemen in uw pagina.

ng-if Een element in de DOM verwijderen of opnieuw maken, afhankelijk van een expressie

ng-switch voorwaardelijk besturingselement op basis van overeenkomende expressie.

ng-model Bindt een invoer-, selectie-, tekstgebied enz. elementen met modeleigenschap.

ng-readonly Gebruikt om het readonly-kenmerk voor een element in te stellen.

ng-repeat Wordt gebruikt om elk item in een verzameling te doorlopen om een nieuwe sjabloon te maken.

ng-selected Gebruikt om de geselecteerde optie in het element in te stellen.

ng-show/ng-hide Elementen tonen / verbergen op basis van een uitdrukking.

ng-src AngularJS-variabelen dynamisch binden aan het src-kenmerk.

ng-submit Bind hoekige uitdrukkingen aan onsubmit evenementen.

ng-value Bind hoekige uitdrukkingen aan de waarde van.

ng-required Bind hoekige uitdrukkingen om gebeurtenissen in te dienen.

ng-style Stelt CSS-stijl in op een HTML-element.

ng-pattern Voegt de patroonvalidator toe aan ngModel.

ng-maxlength Voegt de maxlength-validator toe aan ngModel.

ng-minlength Voegt de minlength-validator toe aan ngModel.

ng-classeven Werkt in combinatie met ngRepeat en wordt alleen van kracht op oneven (even) rijen.

ng-classodd Werkt in combinatie met ngRepeat en wordt alleen van kracht op oneven (even) rijen.

ng-cut Wordt gebruikt om aangepast gedrag op te geven voor de cut-gebeurtenis.

ng-copy Wordt gebruikt om aangepast gedrag op te geven bij copy-gebeurtenis.

ng-paste Wordt gebruikt om aangepast gedrag op te geven voor de paste-gebeurtenis.

ng-options Wordt gebruikt om dynamisch een lijst met elementen voor het element te genereren.

ng-list Wordt gebruikt om een tekenreeks om te zetten in een lijst op basis van het opgegeven scheidingsteken.

ng-open Gebruikt om het open attribuut op het element in te stellen, als de uitdrukking in ngOpen waar is.

Bron (een beetje bewerkt)

ngClick

De ng-click instructie voegt een click-gebeurtenis toe aan een DOM-element.

Met de ng-click instructie kunt u aangepast gedrag opgeven wanneer op een element van DOM wordt geklikt.

Dit is handig wanneer u klikgebeurtenissen aan knoppen wilt toevoegen en deze op uw controller wilt verwerken.

Deze richtlijn accepteert een uitdrukking waarbij het evenementenobject beschikbaar is als $event

HTML

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

controleur

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

controleur

...

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

Wanneer op de knop wordt geklikt, wordt door een aanroep van de functie onClick "Hello click event" afgedrukt, gevolgd door het gebeurtenisobject.

ngRequired

Het ng-required voegt het required validatiekenmerk toe aan of verwijdert het van een element, dat op zijn beurt de require validatiesleutel voor de input in- en uitschakelt.

Het wordt gebruikt om optioneel te definiëren of een input een niet-lege waarde moet hebben. De richtlijn is nuttig bij het ontwerpen van validatie op complexe HTML-formulieren.

HTML

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

ng-model-opties

ng-model-options kunt u het standaardgedrag van ng-model . Met deze richtlijn kunnen gebeurtenissen worden geregistreerd die worden geactiveerd wanneer het ng-model wordt bijgewerkt en een debounce-effect toevoegen.

Deze richtlijn accepteert een uitdrukking die zal evalueren naar een definitieobject of een verwijzing naar een bereikwaarde.

Voorbeeld:

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

In het bovenstaande voorbeeld wordt een debounce-effect van 500 milliseconden op myValue , waardoor het model 500 ms bijwerkt nadat de gebruiker de input (dat wil zeggen wanneer de myValue klaar was met bijwerken).

Beschikbare objecteigenschappen

  1. updateOn : geeft aan welke gebeurtenis aan de invoer moet worden gebonden

    ng-model-options="{ updateOn: 'blur'}" // will update on blur
    
  2. debounce : geeft een vertraging van enkele milliseconden op voor de modelupdate

    ng-model-options="{'debounce': 500}" // will update the model after 1/2 second
    
  3. allowInvalid : een booleaanse vlag die een ongeldige waarde voor het model toestaat en standaardformuliervalidatie omzeilt, deze waarden worden standaard als undefined behandeld.

  4. getterSetter : een booleaanse vlag die aangeeft of het ng-model moet worden behandeld als een getter / setter-functie in plaats van een gewone getterSetter . De functie wordt dan uitgevoerd en retourneert de modelwaarde.

    Voorbeeld:

    <input type="text" ng-model="myFunc" ng-model-options="{'getterSetter': true}">
    
    $scope.myFunc = function() {return "value";}
    
  5. timezone : definieert de tijdzone voor het model als de invoer de date of time . types

ngCloak

De ngCloak richtlijn wordt gebruikt om te voorkomen dat de Angular html-sjabloon kort door de browser wordt weergegeven in zijn onbewerkte (ongecompileerde) vorm terwijl uw toepassing wordt geladen. - Bekijk bron

HTML

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

ngCloak kan worden toegepast op het body-element, maar het voorkeurstoepassing is om meerdere ngCloak-richtlijnen toe te passen op kleine delen van de pagina om een progressieve weergave van de browserweergave mogelijk te maken.

De ngCloak richtlijn heeft geen parameters.

Zie ook: Flikkeren voorkomen

ngInclude

Met ng-include kunt u de besturing van een deel van de pagina delegeren aan een specifieke controller. Misschien wilt u dit doen omdat de complexiteit van die component zodanig wordt dat u alle logica in een speciale controller wilt inkapselen.

Een voorbeeld is:

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

Merk op dat de /gridview door de webserver moet worden bediend als een afzonderlijke en legitieme url.

Merk ook op dat het src -attribuut een uitdrukking Angular accepteert. Dit kan bijvoorbeeld een variabele of een functieaanroep zijn of, zoals in dit voorbeeld, een stringconstante. In dit geval moet u ervoor zorgen dat u de bron-URL tussen enkele aanhalingstekens plaatst , zodat deze wordt geëvalueerd als een tekenreeksconstante. Dit is een veel voorkomende bron van verwarring.

Binnen de /gridview html kunt u naar de gridController verwijzen alsof deze rond de pagina is gewikkeld, bijvoorbeeld:

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

ngSrc

Het gebruik van Angular markup zoals {{hash}} in een src-attribuut werkt niet goed. De browser haalt de URL op met de letterlijke tekst {{hash}} totdat Angular de uitdrukking in {{hash}} vervangt. ng-src richtlijn vervangt het oorspronkelijke src kenmerk voor het afbeeldingscode-element en lost het probleem op

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

ngPattern

De ng-pattern accepteert een uitdrukking die resulteert in een regulier uitdrukkingspatroon en gebruikt dat patroon om een tekstinvoer te valideren.

Voorbeeld:

Laten we zeggen dat we willen dat een <input> -element geldig wordt wanneer de waarde (ng-model) een geldig IP-adres is.

Sjabloon:

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

controller:

$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

Meestal gebruikt onder ng-repeat ngValue is handig bij het dynamisch genereren van lijsten met keuzerondjes met ngRepeat

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

Werken plnkr

ngCopy

De ngCopy richtlijn geeft het gedrag aan dat moet worden uitgevoerd bij een ngCopy .

Voorkom dat een gebruiker gegevens kopieert

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

In de controller

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

ngPaste

De ngPaste richtlijn geeft aangepast gedrag aan dat moet worden uitgevoerd wanneer een gebruiker inhoud plakt

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

ngHref

ngHref wordt gebruikt in plaats van het kenmerk href, als we een hoekuitdrukking binnen de href-waarde hebben. De ngHref-richtlijn vervangt het oorspronkelijke href-kenmerk van een html-tag met behulp van het href-kenmerk zoals tag, tag etc.

De ngHref-richtlijn zorgt ervoor dat de link niet wordt verbroken, zelfs als de gebruiker op de link klikt voordat AngularJS de code heeft geëvalueerd.

voorbeeld 1

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

Voorbeeld 2 Dit voorbeeld haalt dynamisch de href-waarde uit het invoervak en laadt deze als href-waarde.

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

Voorbeeld 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

De ng-list instructie wordt gebruikt om een gescheiden tekenreeks om te zetten van een tekstinvoer naar een reeks tekenreeksen of vice versa.

De ng-list richtlijn gebruikt een standaardscheidingsteken van ", " (komma).

U kunt het scheidingsteken handmatig instellen door ng-list een delimeter toe te wijzen zoals deze ng-list="; " .

In dit geval wordt het scheidingsteken ingesteld op een puntkomma gevolgd door een spatie.

Standaard heeft ng-list een attribuut ng-trim dat is ingesteld op true. ng-trim wanneer false, respecteert de witte ruimte in uw scheidingsteken. Standaard houdt ng-list geen rekening met witruimte tenzij u ng-trim="false" .

Voorbeeld:

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

Een klantscheidingsteken is ingesteld ; . En het model van het invoervak is ingesteld op de array die in de scope is gemaakt.

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

Het invoervak wordt weergegeven met de inhoud: angular; is; cool!



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow