AngularJS
Inbyggda direktiv
Sök…
Vinkliga uttryck - Text kontra antal
Detta exempel visar hur vinkla uttryck utvärderas när du använder type="text" och type="number" för inmatningselementet. Tänk på följande controller och visa:
Kontrollant
var app = angular.module('app', []);
app.controller('ctrl', function($scope) {
$scope.textInput = {
value: '5'
};
$scope.numberInput = {
value: 5
};
});
Se
<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>
- Vid användning
+i ett uttryck bundet till textinmatning kommer operatören sammanfoga strängarna (första exempel), som visar 55 på skärmen*. - Vid användning
+i ett uttryck bunden till nummer ingång, operatören returnera summan av talen (andra exempel), som visar 10 på skärmen*.
* - Det är tills användaren ändrar värdet i inmatningsfältet, därefter kommer displayen att ändras i enlighet därmed.
ngRepeat
ng-repeat är ett inbyggt direktiv i Angular som låter dig iterera en matris eller ett objekt och ger dig möjligheten att upprepa ett element en gång för varje objekt i samlingen.
ng-upprepa en matris
<ul>
<li ng-repeat="item in itemCollection">
{{item.Name}}
</li>
</ul>
Var:
artikel = enskild artikel i samlingen
itemCollection = Matrisen du iterera
ng-upprepa ett objekt
<ul>
<li ng-repeat="(key, value) in myObject">
{{key}} : {{value}}
</li>
</ul>
Var:
nyckel = egendomsnamnet
värde = fastighetens värde
myObject = objektet du itererar
filtrera din ng-repetera efter användarinmatning
<input type="text" ng-model="searchText">
<ul>
<li ng-repeat="string in stringArray | filter:searchText">
{{string}}
</li>
</ul>
Var:
searchText = texten som användaren vill filtrera listan efter
stringArray = en rad strängar, t.ex. ['string', 'array']
Du kan också visa eller hänvisa till de filtrerade artiklarna någon annanstans genom att tilldela filterutdata ett alias med as aliasName , så:
<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-repetera-start och ng-repetera-slut
För att upprepa flera DOM-element genom att definiera en start och en slutpunkt kan du använda ng-repeat-start och ng-repeat-end riktlinjerna.
<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>
Produktion:
- 1
- 2
- 3
- 4
Det är viktigt att alltid stänga ng-repeat-start med ng-repeat-end .
variabler
ng-repeat exponerar också dessa variabler i uttrycket
| Variabel | Typ | detaljer |
|---|---|---|
$index | siffra | Lika med indexet för den aktuella iterationen ($ index === 0 kommer att utvärderas till true vid det första itererade elementet; se $first ) |
$first | Boolean | Utvärderar till sant vid det första itererade elementet |
$last | Boolean | Utvärderar till sant vid det sista itererade elementet |
$middle | Boolean | Utvärderar till true om elementet är mellan $first och $last |
$even | Boolean | Utvärderar till true vid en jämn iteration (motsvarande $index%2===0 ) |
$odd | Boolean | Utvärderar till true vid en udda numrerad iteration (motsvarande $index%2===1 ) |
Resultathänsyn
Återgivning av ngRepeat kan bli långsam, särskilt när du använder stora samlingar.
Om objekten i samlingen har en identifierareegenskap, bör du alltid track by identifieraren i stället för hela objektet, som är standardfunktionen. Om ingen identifierare finns kan du alltid använda det inbyggda $index .
<div ng-repeat="item in itemCollection track by item.id">
<div ng-repeat="item in itemCollection track by $index">
Räckvidd för ngRepeat
ngRepeat skapar alltid ett isolerat barnomfång så att man måste ta hand om föräldrarnas omfång måste nås inom repetitionen.
Här är ett enkelt exempel som visar hur du kan ställa in ett värde i din överordnade omfattning från en klickhändelse inuti 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'
}];
Om det bara fanns val = item.value vid ng-click kommer det inte att uppdatera val i överordnade omfång på grund av det isolerade omfånget. Det är därför man får tillgång till överordnade räckvidd med $parent eller med controllerAs syntax (t.ex. ng-controller="mainController as ctrl" ).
Häckt ng-repetition
Du kan också använda kapslade ng-repetera.
<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']
];
});
Här för att få tillgång till indexet för förälder ng-repetition inuti barn ng-repetition kan du använda $parent.$index .
ngShow och ngHide
Direktivet ng-show visar eller döljer HTML-elementet baserat på om uttrycket som skickas till det är sant eller falskt. Om värdet på uttrycket är falskt kommer det att dölja. Om det är sant kommer det att visa.
Direktivet om ng-hide är liknande. Men om värdet är falskt visar HTML-elementet. När uttrycket är sanningsenligt kommer det att dölja det.
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';
}
Se
<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 är ett direktiv som förenklar skapandet av en html-dropdown-ruta för val av ett objekt från en matris som kommer att lagras i en modell. NgOptions-attributet används för att dynamiskt generera en lista med <option> -element för <select> -elementet med hjälp av arrayen eller objektet som erhålls genom att utvärdera uttrycket ngOptions-förståelse.
Med ng-options kan markeringen reduceras till bara en markering och direktivet skapar samma val:
<select ng-model="selectedFruitNgOptions"
ng-options="curFruit as curFruit.label for curFruit in fruit">
</select>
Det finns ett annat sätt att skapa select alternativ med hjälp av ng-repeat , men det rekommenderas inte att använda ng-repeat eftersom det mest används för allmänna ändamål, till exempel forEach bara slinga. Medan ng-options är specifikt för att skapa select taggalternativ.
Ovanstående exempel med ng-repeat skulle vara
<select ng-model="selectedFruit">
<option ng-repeat="curFruit in fruit" value="{{curFruit}}">
{{curFruit.label}}
</option>
</select>
Låt oss se ovanstående exempel i detalj också med vissa variationer i det.
Datamodell för exemplet:
$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>
Alternativtagg genereras vid val:
<option value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>
effekter:
f.label kommer att vara etiketten för <option> och värdet kommer att innehålla hela objektet.
<!-- select as label for value in array -->
<select ng-options="f.value as f.label for f in fruit" ng-model="selectedFruit"></select>
Alternativtagg genereras vid val:
<option value="4"> Apples </option>
effekter:
f.value (4) är värdet i detta fall medan etiketten fortfarande är densamma.
<!-- 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>
Alternativtagg genereras vid val:
<option value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>
effekter:
Alternativ kommer att grupperas baserat på value . Alternativ med samma value faller under en kategori
<!-- 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>
Alternativtagg genereras vid val:
<option disabled="" value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>
effekter:
"Äpplen" och "Limefrukter" kommer att inaktiveras (kan inte välja) på grund av att villkoret är disable when f.value==4 . Alla alternativ med value=4 ska vara inaktiverade
<!-- 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>
Alternativtagg genereras vid val:
<option value="4"> Apples </option>
effekter:
Det finns inte visuell förändring när du använder trackBy , men Angular kommer att upptäcka förändringar med id istället för med referens, vilket mest alltid är en bättre lösning.
<!-- 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>
Alternativtagg genereras vid val:
<option disabled="" value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>
effekter:
orderBy är ett AngularJS-standardfilter som ordnar alternativ i stigande ordning (som standard) så att "Apelsiner" i detta kommer att visas 1: a sedan dess id = 1.
Alla <select> med ng-options måste ha ng-model bifogad.
ngModel
Med ng-modell kan du binda en variabel till alla typer av inmatningsfält. Du kan visa variabeln med dubbla lockiga hängslen, t.ex. {{myAge}} .
<input type="text" ng-model="myName">
<p>{{myName}}</p>
När du skriver in inmatningsfältet eller ändrar det på något sätt ser du värdet i styckuppdateringen direkt.
Variabeln ng-modell, i det här fallet, kommer att finnas tillgänglig i din styrenhet som $scope.myName . Om du använder controllerAs syntax:
<div ng-controller="myCtrl as mc">
<input type="text" ng-model="mc.myName">
<p>{{mc.myName}}</p>
</div>
Du måste hänvisa till regulatorns omfattning genom att i förväg vänta på kontrollerns alias definierat i ng-controller-attributet till ng-modellvariabeln. På så sätt behöver du inte injicera $scope i din controller för att referera till din ng-modellvariabel, variabeln kommer att finnas tillgänglig som this.myName i din controller-funktion.
ngClass
Låt oss anta att du måste visa status för en användare och att du har flera möjliga CSS-klasser som kan användas. Angular gör det mycket enkelt att välja från en lista med flera möjliga klasser som låter dig specificera en objektlista som innehåller villkor. Angular har möjlighet att använda rätt klass baserat på sanningsenhetens kondition.
Ditt objekt ska innehålla nyckel- / värdepar. Nyckeln är ett klassnamn som kommer att tillämpas när värdet (villkorat) utvärderas till sant.
<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>
Vinkel kontrollerar $scope.user objektet för att se active status och level Beroende på värdena i dessa variabler tillämpar Angular matchningsstilen på <span> .
ngIf
ng-if är ett direktiv som liknar ng-show men infogar eller tar bort elementet från DOM istället för att helt enkelt gömma det. Angular 1.1.5 införde ng-If-direktivet. Du kan använda ng-if-direktivet ovan versionerna 1.1.5. Detta är användbart eftersom Angular inte kommer att bearbeta digests för element inuti en borttagen ng-if arbetsbördan för Angular reduceras särskilt för komplexa databindningar.
Till skillnad från ng-show skapar ng-if direktivet ett barnomfång som använder prototypformad arv. Detta innebär att inställning av ett primitivt värde på barnets omfattning inte kommer att gälla föräldern. För att ställa in en primitiv på överordnade omfång måste $parent på underordningsområdet användas.
JavaScript
angular.module('MyApp', []);
angular.module('MyApp').controller('myController', ['$scope', '$window', function myController($scope, $window) {
$scope.currentUser= $window.localStorage.getItem('userName');
}]);
Se
<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 Om den currentUser är definierad
<div ng-controller="myController">
<div ng-if="currentUser">
Hello, {{currentUser}}
</div>
<!-- ng-if: !currentUser -->
</div>
DOM Om den currentUser är definierad
<div ng-controller="myController">
<!-- ng-if: currentUser -->
<div ng-if="!currentUser">
<a href="/login">Log In</a>
<a href="/register">Register</a>
</div>
</div>
Funktionslöfte
Direktivet ngIf accepterar också funktioner som logiskt kräver att de ska returnera sant eller falskt.
<div ng-if="myFunction()">
<span>Span text</span>
</div>
Spanntexten visas bara om funktionen returnerar sanningen.
$scope.myFunction = function() {
var result = false;
// Code to determine the boolean value of result
return result;
};
Som valfritt uttryck accepterar funktionen alla typer av variabler.
ngMouseenter och ngMouseleave
ng-mouseenter och ng-mouseleave är användbara för att köra händelser och tillämpa CSS-styling när du håller muspekaren in eller ut ur dina DOM-element.
Direktivet om ng-mouseenter kör ett uttryck som en musinmatningshändelse (när användaren anger sin muspekare över DOM-elementet finns detta direktiv i)
html
<div ng-mouseenter="applyStyle = true" ng-class="{'active': applyStyle}">
I exemplet ovan, när användaren pekar musen över div , vänder applyStyle till true , vilket i sin tur tillämpar .active CSS-klassen i ng-class .
Direktivet ng-mouseleave kör ett uttryck från en musutgångshändelse (när användaren tar bort musmarkören från DOM-elementet finns detta direktiv i)
html
<div ng-mouseenter="applyStyle = true" ng-mouseleaver="applyStyle = false" ng-class="{'active': applyStyle}">
Återanvända det första exemplet, nu när användaren tar honom muspekaren bort från div, .active den .active klassen bort.
ngDisabled
Detta direktiv är användbart för att begränsa inputhändelser baserat på vissa befintliga förhållanden.
Direktivet om ng-disabled accepterar och uttrycker som borde utvärdera antingen sannings- eller falskvärden.
ng-disabled används för att villkorligt tillämpa det disabled attributet på ett 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 utvärderas till true om input är 0, vilket är avaktiverar knappen, vilket låter användaren avfyra klickhändelsen för ng-click
ngDblclick
Direktivet ng-dblclick är användbart när du vill binda en dubbelklickhändelse i dina DOM-element.
Detta direktiv accepterar ett uttryck
html
<input type="number" ng-model="num = num + 1" ng-init="num=0">
<button ng-dblclick="num++">Double click me</button>
I exemplet ovan ökas värdet vid input när knappen dubbelklickas.
Inbyggda direktiv Cheat Sheet
ng-app Ställer in avsnittet AngularJS.
ng-init Ställer in ett standardvariabelt värde.
ng-bind Alternativ till {{}} mall.
ng-bind-template Binder flera uttryck till vyn.
ng-non-bindable att uppgifterna inte är bindbara.
ng-bind-html Binder inre HTML-egenskap hos ett HTML-element.
ng-change Utvärderar angivet uttryck när användaren ändrar ingången.
ng-checked Ställer in kryssrutan.
ng-class Ställer in css-klassen dynamiskt.
ng-cloak Förhindrar visning av innehållet tills AngularJS har tagit kontrollen.
ng-click Kör en metod eller ett uttryck när elementet klickas.
ng-controller Ansluter en controller-klass till vyn.
ng-disabled Kontrollerar formelementets inaktiverade egenskap
ng-form Ställer in ett formulär
ng-href Dynamiskt binda AngularJS-variabler till href-attributet.
ng-include Används för att hämta, sammanställa och inkludera ett externt HTML-fragment på din sida.
ng-if Ta bort eller återskapa ett element i DOM beroende på ett uttryck
ng-switch Villkorlig växelstyrning baserad på matchande uttryck.
ng-model Binder en inmatnings-, markerings-, textartikel-element med modellegenskap.
ng-readonly Används för att ställa in readonly attribut till ett element.
ng-repeat Används för att gå igenom varje objekt i en samling för att skapa en ny mall.
ng-selected Används för att ställa in valt alternativ i elementet.
ng-show/ng-hide Visa / dölj element baserat på ett uttryck.
ng-src dynamiskt AngularJS-variabler till src-attributet.
ng-submit Bind vinkeluttryck för att skicka händelser.
ng-value Bind vinkeluttryck till värdet på.
ng-required Bind vinkeluttryck för att skicka in händelser.
ng-style Ställer in CSS-stil på ett HTML-element.
ng-pattern Lägger till mönstervalidator till ngModel.
ng-maxlength Lägger till maxlength validator till ngModel.
ng-minlength Lägger till minlength validator till ngModel.
ng-classeven Fungerar tillsammans med ngRepeat och träder i kraft endast på udda (jämna) rader.
ng-classodd Fungerar tillsammans med ngRepeat och träder i kraft endast på udda (jämna) rader.
ng-cut Används för att specificera anpassat beteende på cut-händelse.
ng-copy Används för att ange anpassat beteende vid kopieringshändelse.
ng-paste Används för att ange anpassat beteende för klistra händelse.
ng-options Används för att dynamiskt generera en lista över element för elementet.
ng-list Används för att konvertera sträng till lista baserad på specificerad avgränsare.
ng-open Används för att ställa in det öppna attributet för elementet, om uttrycket inuti ngOpen är sanningsenligt.
ngClick
Direktivet ng-click fäster en klickhändelse till ett DOM-element.
Med ng-click kan du ange anpassat beteende när du ng-click ett element i DOM.
Det är användbart när du vill bifoga klickhändelser på knappar och hantera dem på din controller.
Detta direktiv accepterar ett uttryck med händelserobjektet tillgängligt som $event
html
<input ng-click="onClick($event)">Click me</input>
Kontrollant
.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>
Kontrollant
...
$scope.count = function(){
$scope.count = $scope.count + 1;
}
...
När du klickar på knappen kommer en anrop av onClick funktionen att skriva ut "Hello click event" följt av händelseobjektet.
ngRequired
Den ng-required lägger till eller tar bort den required attributet validering på ett element, vilket i sin tur kommer att aktivera och inaktivera require valideringsnyckeln för input .
Det används för att valfritt definiera om ett input ska ha ett icke-tomt värde. Direktivet är användbart vid utformning av validering på komplexa HTML-formulär.
html
<input type="checkbox" ng-model="someBooleanValue">
<input type="text" ng-model="username" ng-required="someBooleanValue">
ng-modell-options
ng-model-options tillåter att ändra standardbeteendet för ng-model , det här direktivet gör det möjligt att registrera händelser som kommer att avfyras när ng-modellen uppdateras och att fästa en avvisningseffekt.
Detta direktiv accepterar ett uttryck som utvärderar till ett definitionsobjekt eller en hänvisning till ett omfattningsvärde.
Exempel:
<input type="text" ng-model="myValue" ng-model-options="{'debounce': 500}">
Exemplet ovan kommer att bifoga en avvisningseffekt på 500 millisekunder på myValue , vilket kommer att få modellen att uppdatera 500 ms efter att användaren har skrivit över input (det vill säga när myValue slutförde uppdateringen).
Tillgängliga objektegenskaper
updateOn: anger vilken händelse som ska vara bunden till ingångenng-model-options="{ updateOn: 'blur'}" // will update on blurdebounce: specificerar en fördröjning på något millisekund mot modelluppdateringenng-model-options="{'debounce': 500}" // will update the model after 1/2 secondallowInvalid: en boolesk flagga som möjliggör ett ogiltigt värde för modellen, kringgå standardformulering, som standard kommer dessa värden att behandlas somundefined.getterSetter: en boolesk flagga som indikerar om man ska behandlang-modelsom en getter / setter-funktion istället för ett vanligt modellvärde. Funktionen körs sedan och returnerar modellvärdet.Exempel:
<input type="text" ng-model="myFunc" ng-model-options="{'getterSetter': true}"> $scope.myFunc = function() {return "value";}timezone: definierar tidszonen för modellen om ingången hardateellertime. typer
ngCloak
Direktivet
ngCloakanvänds för att förhindra att Angular html-mallen kort visas av webbläsaren i sin råa (okompilerade) form medan din applikation laddas. - Visa källa
html
<div ng-cloak>
<h1>Hello {{ name }}</h1>
</div>
ngCloak kan tillämpas på kroppselementet, men den föredragna användningen är att tillämpa flera ngCloak-direktiv på små delar av sidan för att möjliggöra en progressiv återgivning av webbläsarvyen.
ngCloak direktivet har inga parametrar.
Se även: Förhindra flimmer
ngInclude
ng-include låter dig delegera kontrollen av en del av sidan till en specifik controller. Du kanske vill göra detta eftersom komplexiteten hos den komponenten blir sådan att du vill kapsla all logik i en dedicerad styrenhet.
Ett exempel är:
<div ng-include
src="'/gridview'"
ng-controller='gridController as gc'>
</div>
Observera att /gridview måste betjänas av webbservern som en tydlig och legitim url.
Observera också att src attributet accepterar ett vinkeluttryck. Detta kan vara en variabel eller ett funktionssamtal till exempel eller, som i detta exempel, en strängkonstant. I det här fallet måste du se till att radera källadressen i enstaka citat , så att den utvärderas som en strängkonstant. Detta är en vanlig källa till förvirring.
Inom /gridview html kan du hänvisa till gridController som om den var lindad runt sidan, t.ex.:
<div class="row">
<button type="button" class="btn btn-default" ng-click="gc.doSomething()"></button>
</div>
ngSrc
Att använda vinkelmarkering som {{hash}} i ett src-attribut fungerar inte korrekt. Webbläsaren hämtar från URL: en med bokstavlig text {{hash}} tills Angular ersätter uttrycket inuti {{hash}} . ng-src direktiv åsidosätter det ursprungliga src attributet för bildtaggelementet och löser problemet
<div ng-init="pic = 'pic_angular.jpg'">
<h1>Angular</h1>
<img ng-src="{{pic}}">
</div>
ngPattern
Direktivet om ng-pattern accepterar ett uttryck som utvärderar till ett vanligt uttrycksmönster och använder det mönstret för att validera en textinmatning.
Exempel:
Låt oss säga att vi vill att ett <input> -element ska bli giltigt när det är värdet (ng-modell) är en giltig IP-adress.
Mall:
<input type="text" ng-model="ipAddr" ng-pattern="ipRegex" name="ip" required>
Kontrollant:
$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
Det mest använda under ng-repeat ngValue är användbart när du dynamiskt genererar listor med radioknappar med 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>
ngCopy
Direktivet ngCopy anger beteende som ska köras vid en kopieringshändelse.
Förhindra att en användare kopierar data
<p ng-copy="blockCopy($event)">This paragraph cannot be copied</p>
I regulatorn
$scope.blockCopy = function(event) {
event.preventDefault();
console.log("Copying won't work");
}
ngPaste
Direktivet ngPaste anger anpassat beteende som ska köras när en användare klistrar in innehåll
<input ng-paste="paste=true" ng-init="paste=false" placeholder='paste here'>
pasted: {{paste}}
ngHref
ngHref används istället för href-attribut, om vi har en vinkeluttryck inuti href-värdet. Direktivet ngHref åsidosätter det ursprungliga href-attributet för en html-tagg med href-attribut som tag, tag etc.
Direktivet ngHref ser till att länken inte bryts även om användaren klickar på länken innan AngularJS har utvärderat koden.
Exempel 1
<div ng-init="linkValue = 'http://stackoverflow.com'">
<p>Go to <a ng-href="{{linkValue}}">{{linkValue}}</a>!</p>
</div>
Exempel 2 Detta exempel får dynamiskt href-värdet från inmatningsrutan och laddar det som href-värde.
<input ng-model="value" />
<a id="link" ng-href="{{value}}">link</a>
Exempel 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
Direktivet ng-list används för att konvertera en avgränsad sträng från en textinmatning till en rad strängar eller vice versa.
Direktivet i ng-list använder en standardavgränsare av ", " (kommautrymme).
Du kan ställa in avgränsaren manuellt genom att tilldela ng-list en avgränsare som denna ng-list="; " .
I detta fall är avgränsaren inställd på en semikolon följt av ett mellanrum.
Som standard har ng-list ett attribut ng-trim som är satt till true. ng-trim när falskt, kommer att respektera vitt utrymme i din avgränsare. Som standard tar inte ng-list vitt utrymme om du inte anger ng-trim="false" .
Exempel:
angular.module('test', [])
.controller('ngListExample', ['$scope', function($scope) {
$scope.list = ['angular', 'is', 'cool!'];
}]);
En kundavgränsare är inställd på att vara ; . Och modellen för inmatningsrutan är inställd på den matris som skapades på omfattningen.
<body ng-app="test" ng-controller="ngListExample">
<input ng-model="list" ng-list="; " ng-trim="false">
</body>
Inmatningsrutan visas med innehållet: angular; is; cool!