Ricerca…


Espressioni angolari - Testo contro numero

Questo esempio dimostra come vengono valutate le espressioni angolari quando si utilizza type="text" e type="number" per l'elemento di input. Si consideri il seguente controller e vista:

controllore

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

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

vista

<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>
  • Quando si utilizza + in un'espressione associata all'input di testo , l'operatore concatenerà le stringhe (primo esempio), visualizzando 55 sullo schermo * .
  • Quando si utilizza + in un'espressione associata all'input del numero , l'operatore restituisce la somma dei numeri (secondo esempio), visualizzando 10 sullo schermo * .

* - Fino a quando l'utente non modifica il valore nel campo di immissione, in seguito il display cambierà di conseguenza.

Esempio di lavoro

ngRepeat

ng-repeat è una direttiva incorporata in Angular che ti permette di iterare una matrice o un oggetto e ti dà la possibilità di ripetere un elemento una volta per ogni oggetto della collezione.

ng-ripeti un array

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

Dove:
item = singolo oggetto nella collezione
itemCollection = La matrice che stai iterando


ng-ripeti un oggetto

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

Dove:
chiave = il nome della proprietà
valore = il valore della proprietà
myObject = l'oggetto che stai iterando


filtra la tua ng-ripetizione per input dell'utente

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

Dove:
searchText = il testo che l'utente vuole filtrare per la lista
stringArray = una serie di stringhe, ad esempio ['string', 'array']

Puoi anche visualizzare o riferire gli elementi filtrati altrove assegnando al filtro un alias di output con as aliasName , in questo modo:

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

Per ripetere più elementi DOM definendo un punto iniziale e uno finale è possibile utilizzare le direttive ng-repeat-start e 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>

Produzione:

  • 1
  • 2
  • 3
  • 4

È importante chiudere sempre ng-repeat-start con ng-repeat-end .

variabili

ng-repeat espone anche queste variabili all'interno dell'espressione

Variabile genere Dettagli
$index Numero Uguale all'indice dell'attuale iterazione ($ index === 0 valuterà in vero al primo elemento iterato, vedi $first )
$first booleano Valuta true al primo elemento iterato
$last booleano Valuta true all'ultimo elemento iterato
$middle booleano Valuta true se l'elemento è compreso tra $first e $last
$even booleano Valuta true in un'iterazione pari (equivalente a $index%2===0 )
$odd booleano Valuta true in un'iterazione dispari numerata (equivalente a $index%2===1 )

Considerazioni sulle prestazioni

Il rendering di ngRepeat può rallentare, specialmente quando si utilizzano raccolte di grandi dimensioni.

Se gli oggetti nella raccolta hanno una proprietà identificatore, è sempre necessario track by dell'identificatore anziché dell'intero oggetto, che è la funzionalità predefinita. Se non è presente alcun identificativo, è sempre possibile utilizzare l' $index incorporato.

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

Scopo di ngRepeat

ngRepeat creerà sempre un ambito figlio isolato, quindi è necessario prestare attenzione se è necessario accedere all'ambito principale all'interno della ripetizione.

Ecco un semplice esempio che mostra come è possibile impostare un valore nello scope genitore da un evento click all'interno di 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'
}];

Se era presente solo val = item.value in ng-click , non aggiornerà la val nell'ambito genitore a causa dell'ambito isolato. Ecco perché l'ambito genitore è accessibile con riferimento $parent o con la sintassi controllerAs (ad es. ng-controller="mainController as ctrl" ).

Ng-ripetizione annidata

Puoi anche usare ng-repeat annidato.

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

Qui per accedere all'indice di parent ng-repeat all'interno di child ng-repeat, puoi usare $parent.$index .

ngShow and ngHide

La direttiva ng-show mostra o nasconde l'elemento HTML in base a se l'espressione passata è vera o falsa. Se il valore dell'espressione è falsy allora si nasconderà. Se è vero, allora mostrerà.

La direttiva ng-hide è simile. Tuttavia, se il valore è falsy, mostrerà l'elemento HTML. Quando l'espressione è veritiera, la nasconderà.

Esempio di JSBin funzionante

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

vista

<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 è una direttiva che semplifica la creazione di una casella a discesa html per la selezione di un elemento da una matrice che verrà memorizzata in un modello. L'attributo ngOptions viene utilizzato per generare dinamicamente un elenco di elementi <option> per l'elemento <select> utilizzando l'array o l'oggetto ottenuto valutando l'espressione di comprensione ngOptions.

Con ng-options il markup può essere ridotto a un solo tag select e la direttiva creerà la stessa selezione:

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

C'è un altro modo per creare opzioni di select usando ng-repeat , ma non è consigliabile usare ng-repeat dato che è usato principalmente per scopi generali come, per forEach solo loop. Mentre ng-options è specifico per la creazione di opzioni di tag select .

Sopra l'esempio usando ng-repeat sarebbe

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

ESEMPIO COMPLETO

Vediamo l'esempio sopra in dettaglio anche con alcune variazioni in esso.

Modello dati per l'esempio:

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

Tag di opzione generato alla selezione:

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

effetti:

f.label sarà l'etichetta di <option> e il valore conterrà l'intero oggetto.

ESEMPIO COMPLETO


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

Tag di opzione generato alla selezione:

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

effetti:

f.value (4) sarà il valore in questo caso mentre l'etichetta è sempre la stessa.

ESEMPIO COMPLETO


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

Tag di opzione generato alla selezione:

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

effetti:

Le opzioni saranno raggruppate in base al loro value . Le opzioni con lo stesso value rientrano in una categoria

ESEMPIO COMPLETO


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

Tag di opzione generato alla selezione:

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

effetti:

"Mele" e "Limes" saranno disabilitati (impossibile selezionare) a causa della condizione disable when f.value==4 . Tutte le opzioni con value=4 devono essere disabilitate

ESEMPIO COMPLETO


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

Tag di opzione generato alla selezione:

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

effetti:

Non v'è cambiamento visibile quando si usa trackBy , ma angolare rileverà cambiamenti nel id anziché di riferimento che è quasi sempre una soluzione migliore.

ESEMPIO COMPLETO


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

Tag di opzione generato alla selezione:

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

effetti:

orderBy è un filtro standard AngularJS che organizza le opzioni in ordine crescente (per impostazione predefinita), quindi "Arance" in questo apparirà 1 dal suo id = 1.

ESEMPIO COMPLETO


Tutti i <select> con ng-options devono avere ng-model allegato.

ngModel

Con ng-model puoi associare una variabile a qualsiasi tipo di campo di input. È possibile visualizzare la variabile usando doppie parentesi graffe, ad esempio {{myAge}} .

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

Mentre digiti nel campo di input o lo cambi in qualunque modo vedrai istantaneamente il valore nel paragrafo update.

La variabile ng-model, in questo caso, sarà disponibile nel controller come $scope.myName . Se si utilizza la sintassi del controllerAs :

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

Sarà necessario fare riferimento allo scope del controller pre-in sospeso l'alias del controller definito nell'attributo ng-controller nella variabile ng-model. In questo modo non avrai bisogno di iniettare $scope nel tuo controller per fare riferimento alla tua variabile ng-model, la variabile sarà disponibile come this.myName all'interno della funzione del tuo controller.

ngClass

Supponiamo di dover mostrare lo stato di un utente e di avere diverse classi CSS che potrebbero essere utilizzate. Angular rende molto facile scegliere da un elenco di diverse classi possibili che consentono di specificare un elenco di oggetti che include condizionali. Angular è in grado di utilizzare la classe corretta in base alla verità dei condizionali.

Il tuo oggetto dovrebbe contenere coppie chiave / valore. La chiave è un nome di classe che verrà applicato quando il valore (condizionale) viene valutato su true.

<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 controllerà l'oggetto $scope.user per vedere lo stato active e il numero del level . A seconda dei valori in queste variabili, Angular applicherà lo stile di corrispondenza allo <span> .

ngIf

ng-if è una direttiva simile a ng-show ma inserisce o rimuove l'elemento dal DOM invece di semplicemente nasconderlo. Angular 1.1.5 ha introdotto la direttiva ng-If. È possibile utilizzare la direttiva ng-if sopra le versioni 1.1.5. Ciò è utile perché Angular non elaborerà i digest per gli elementi all'interno di una ng-if rimossa ng-if riducendo il carico di lavoro di Angular in particolare per i binding di dati complessi.

A differenza di ng-show , la direttiva ng-if crea un ambito figlio che utilizza l'ereditarietà prototipale. Ciò significa che l'impostazione di un valore primitivo sull'ambito figlio non si applica al genitore. Per impostare una primitiva sull'ambito $parent proprietà $parent sull'ambito figlio.

JavaScript

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

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

vista

<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 Se currentUser non è indefinito

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

DOM Se currentUser non è definito

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

Esempio di lavoro

Promessa della funzione

La direttiva ngIf accetta anche le funzioni, che richiedono logicamente di restituire true o false.

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

Il testo di span verrà visualizzato solo se la funzione restituisce true.

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

Come qualsiasi espressione angolare, la funzione accetta qualsiasi tipo di variabile.

ngMouseenter e ngMouseleave

Le direttive ng-mouseenter e ng-mouseleave sono utili per eseguire gli eventi e applicare lo stile CSS quando si posiziona il cursore all'interno o all'esterno degli elementi DOM.

La direttiva ng-mouseenter esegue un'espressione quando un mouse entra in un evento (quando l'utente inserisce il puntatore del mouse sull'elemento DOM in cui risiede questa direttiva)

HTML

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

Nell'esempio sopra, quando l'utente punta il mouse sul div , applyStyle diventa true , che a sua volta applica la classe CSS .active alla classe ng-class .

La direttiva ng-mouseleave esegue un'espressione uno un evento di uscita del mouse (quando l'utente ng-mouseleave il cursore del mouse dall'elemento DOM in cui risiede questa direttiva)

HTML

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

Riutilizzando il primo esempio, ora quando l'utente si allontana dal puntatore del mouse dal div, la classe .active viene rimossa.

ngDisabled

Questa direttiva è utile per limitare gli eventi di input in base a determinate condizioni esistenti.

La direttiva ng-disabled accetta ed espressione che dovrebbe valutare valori veri o falsi.

ng-disabled è usato per applicare in modo condizionale l'attributo disabled su un elemento di 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 viene valutato come true se la lunghezza input è 0, che è disabilita il pulsante, impedendo all'utente di attivare l'evento click di ng-click

ngDblclick

La direttiva ng-dblclick è utile quando si desidera associare un evento di doppio clic agli elementi DOM.

Questa direttiva accetta un'espressione

HTML

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

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

Nell'esempio sopra, il valore mantenuto input verrà incrementato quando si fa doppio clic sul pulsante.

Cheat Sheet delle direttive integrate

ng-app Imposta la sezione AngularJS.

ng-init Imposta un valore di variabile predefinito.

ng-bind Alternativa al modello {{}}.

ng-bind-template Lega più espressioni alla vista.

ng-non-bindable che i dati non sono associabili.

ng-bind-html Lega la proprietà HTML interna di un elemento HTML.

ng-change Valuta l'espressione specificata quando l'utente cambia l'input.

ng-checked Imposta la casella di controllo.

ng-class Imposta dinamicamente la classe css.

ng-cloak Impedisce la visualizzazione del contenuto finché AngularJS non ha preso il controllo.

ng-click Esegue un metodo o un'espressione quando si fa clic sull'elemento.

ng-controller Collega una classe controller alla vista.

ng-disabled Controlla la proprietà disabilitata dell'elemento del modulo

ng-form Imposta un modulo

ng-href Associa dinamicamente le variabili AngularJS all'attributo href.

ng-include Utilizzato per recuperare, compilare e includere un frammento HTML esterno nella tua pagina.

ng-if Rimuove o ricrea un elemento nel DOM a seconda di un'espressione

ng-switch Controlla in modo condizionale il controllo in base all'espressione corrispondente.

ng-model Lega un input, seleziona, textarea ecc. elementi con proprietà model.

ng-readonly Utilizzato per impostare un attributo readonly su un elemento.

ng-repeat Utilizzato per scorrere ogni elemento di una raccolta per creare un nuovo modello.

ng-selected Utilizzato per impostare l'opzione selezionata nell'elemento.

ng-show/ng-hide Mostra / nascondi gli elementi in base a un'espressione.

ng-src Associa dinamicamente le variabili AngularJS all'attributo src.

ng-submit Associa le espressioni angolari agli eventi onsubmit.

ng-value Associa le espressioni angolari al valore di.

ng-required Associa le espressioni angolari agli eventi onsubmit.

ng-style Imposta lo ng-style CSS su un elemento HTML.

ng-pattern Aggiunge il modello validatore a ngModel.

ng-maxlength Aggiunge il validatore maxlength a ngModel.

ng-minlength Aggiunge il validatore minlength a ngModel.

ng-classeven Funziona in combinazione con ngRepeat e ha effetto solo su righe dispari (pari).

ng-classodd Funziona in combinazione con ngRepeat e ha effetto solo su righe dispari (pari).

ng-cut Utilizzato per specificare il comportamento personalizzato sull'evento di taglio.

ng-copy Usato per specificare il comportamento personalizzato sull'evento di copia.

ng-paste Utilizzato per specificare il comportamento personalizzato sull'evento incolla.

ng-options Utilizzato per generare dinamicamente un elenco di elementi per l'elemento.

ng-list Utilizzato per convertire una stringa in lista in base al delimitatore specificato.

ng-open Usato per impostare l'attributo open sull'elemento, se l'espressione dentro ngOpen è true.

Fonte (modificato un po ')

ngClick

La direttiva ng-click associa un evento click a un elemento DOM.

La direttiva ng-click consente di specificare il comportamento personalizzato quando si fa clic su un elemento di DOM.

È utile quando si desidera allegare eventi di clic sui pulsanti e gestirli sul controller.

Questa direttiva accetta un'espressione con l'oggetto events disponibile come $event

HTML

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

controllore

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

controllore

...

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

Quando si fa clic sul pulsante, un'invocazione della funzione onClick stamperà "Hello click event" seguito dall'oggetto evento.

ngRequired

ng-required aggiunge o rimuove l'attributo di convalida required su un elemento, che a sua volta abiliterà e disabiliterà la chiave di convalida require per l' input .

È usato per definire opzionalmente se è richiesto un elemento di input per avere un valore non vuoto. La direttiva è utile quando si progetta la convalida su moduli HTML complessi.

HTML

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

NG-modello-options

ng-model-options consente di modificare il comportamento predefinito di ng-model , questa direttiva consente di registrare eventi che si attivano quando il modello ng viene aggiornato e di applicare un effetto antirimbalzo.

Questa direttiva accetta un'espressione che valuterà un oggetto definizione o un riferimento a un valore di ambito.

Esempio:

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

L'esempio precedente allegherà un effetto antirimbalzo di 500 millisecondi su myValue , che farà aggiornare il modello a 500 ms dopo che l'utente ha finito di digitare input (ovvero, quando myValue terminato l'aggiornamento).

Proprietà dell'oggetto disponibili

  1. updateOn : specifica quale evento deve essere associato all'input

    ng-model-options="{ updateOn: 'blur'}" // will update on blur
    
  2. debounce : specifica un ritardo di alcuni millisecondi verso l'aggiornamento del modello

    ng-model-options="{'debounce': 500}" // will update the model after 1/2 second
    
  3. allowInvalid : un flag booleano che consente un valore non valido per il modello, aggirando la convalida del modulo predefinito, per impostazione predefinita questi valori verranno considerati non undefined .

  4. getterSetter : un flag booleano che indica se trattare il ng-model come una funzione getter / setter invece di un valore di modello normale. La funzione verrà quindi eseguita e restituirà il valore del modello.

    Esempio:

    <input type="text" ng-model="myFunc" ng-model-options="{'getterSetter': true}">
    
    $scope.myFunc = function() {return "value";}
    
  5. timezone : definisce il fuso orario per il modello se l'input è della date o time . tipi

ngCloak

La direttiva ngCloak viene utilizzata per impedire che il modello html Angolare venga visualizzato brevemente dal browser nel suo formato raw (non compilato) durante il caricamento dell'applicazione. - Visualizza sorgente

HTML

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

ngCloak può essere applicato all'elemento body, ma l'uso preferito è applicare più direttive ngCloak a piccole porzioni della pagina per consentire il rendering progressivo della vista del browser.

La direttiva ngCloak non ha parametri.

Vedi anche: Prevenire lo sfarfallio

ngInclude

ng-include consente di delegare il controllo di una parte della pagina a un controller specifico. Potresti voler farlo perché la complessità di quel componente sta diventando tale da incapsulare tutta la logica in un controller dedicato.

Un esempio è:

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

Si noti che /gridview dovrà essere servito dal server Web come URL distinto e legittimo.

Inoltre, si noti che src -attribute accetta un'espressione Angolare. Potrebbe trattarsi di una variabile o di una chiamata di funzione, ad esempio o, come in questo esempio, di una costante di stringa. In questo caso è necessario assicurarsi di avvolgere l'URL di origine tra virgolette singole , quindi verrà valutato come costante di stringa. Questa è una fonte comune di confusione.

All'interno di /gridview html, puoi fare riferimento a gridController come se fosse avvolto attorno alla pagina, ad esempio:

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

ngSrc

L'utilizzo del markup angolare come {{hash}} in un attributo src non funziona correttamente. Il browser recupera dall'URL con il testo letterale {{hash}} finché Angular sostituisce l'espressione all'interno di {{hash}} . ng-src direttiva ng-src sovrascrive l'attributo src originale per l'elemento tag immagine e risolve il problema

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

ngPattern

La direttiva ng-pattern accetta un'espressione che valuta un modello di espressione regolare e utilizza tale modello per convalidare un input testuale.

Esempio:

Diciamo che vogliamo che un elemento <input> diventi valido quando è value (ng-model) è un indirizzo IP valido.

Modello:

<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

Utilizzato principalmente in ng-repeat ngValue è utile quando si generano dinamicamente elenchi di pulsanti di opzione usando 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>

Lavoro plnkr

ngCopy

La direttiva ngCopy specifica il comportamento da eseguire su un evento di copia.

Impedire a un utente di copiare i dati

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

Nel controller

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

ngPaste

La direttiva ngPaste specifica il comportamento personalizzato da eseguire quando un utente incolla il contenuto

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

ngHref

ngHref è usato al posto dell'attributo href, se abbiamo espressioni angolari all'interno del valore href. La direttiva ngHref sovrascrive l'attributo href originale di un tag html utilizzando l'attributo href come tag, tag, ecc.

La direttiva ngHref assicura che il collegamento non sia interrotto anche se l'utente fa clic sul collegamento prima che AngularJS abbia valutato il codice.

Esempio 1

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

Esempio 2 Questo esempio ottiene dinamicamente il valore href dalla casella di input e lo carica come valore href.

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

Esempio 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

La direttiva ng-list viene utilizzata per convertire una stringa delimitata da un input di testo a una matrice di stringhe o viceversa.

La direttiva ng-list usa un delimitatore predefinito di ", " (spazio virgola).

È possibile impostare manualmente il delimitatore assegnando a ng-list un delimitatore come questo ng-list="; " .

In questo caso il delimitatore è impostato su un punto e virgola seguito da uno spazio.

Di default ng-list ha un attributo ng-trim che è impostato su true. ng-trim quando false, rispetterà lo spazio bianco nel delimitatore. Per impostazione predefinita, ng-list non prende in considerazione lo spazio bianco a meno che non si imposti ng-trim="false" .

Esempio:

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

Un delimitatore del cliente è impostato per essere ; . E il modello della casella di input è impostato sull'array che è stato creato sull'oscilloscopio.

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

La casella di input verrà visualizzata con il contenuto: angular; is; cool!



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow