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.

Arbetsexempel

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.

Working JSBin Exempel

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>

FULL EXEMPEL

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.

FULL EXEMPEL


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

FULL EXEMPEL


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

FULL EXEMPEL


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

FULL EXEMPEL


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

FULL EXEMPEL


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

FULL EXEMPEL


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>

Arbetsexempel

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.

Källa (redigerad lite)

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

  1. updateOn : anger vilken händelse som ska vara bunden till ingången

    ng-model-options="{ updateOn: 'blur'}" // will update on blur
    
  2. debounce : specificerar en fördröjning på något millisekund mot modelluppdateringen

    ng-model-options="{'debounce': 500}" // will update the model after 1/2 second
    
  3. allowInvalid : en boolesk flagga som möjliggör ett ogiltigt värde för modellen, kringgå standardformulering, som standard kommer dessa värden att behandlas som undefined .

  4. getterSetter : en boolesk flagga som indikerar om man ska behandla ng-model som 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";}
    
  5. timezone : definierar tidszonen för modellen om ingången har date eller time . typer

ngCloak

Direktivet ngCloak anvä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>

Arbetar plnkr

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!



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow