Buscar..


Expresiones angulares - Texto vs. Número

Este ejemplo demuestra cómo se evalúan las expresiones angulares cuando se usa type="text" y type="number" para el elemento de entrada. Considere el siguiente controlador y vea:

Controlador

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

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

Ver

<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>
  • Cuando se usa + en una expresión vinculada al ingreso de texto , el operador concatenará las cadenas (primer ejemplo), mostrando 55 en la pantalla * .
  • Cuando se usa + en una expresión vinculada a la entrada de números , el operador devuelve la suma de los números (segundo ejemplo), mostrando 10 en la pantalla * .

* - Eso es hasta que el usuario cambia el valor en el campo de entrada, luego la pantalla cambiará en consecuencia.

Ejemplo de trabajo

ngRepetir

ng-repeat es una directiva integrada en Angular que le permite iterar una matriz o un objeto y le permite repetir un elemento una vez para cada elemento de la colección.

ng-repetir una matriz

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

Dónde:
item = item individual en la colección
itemCollection = La matriz que está iterando


ng-repetir un objeto

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

Dónde:
clave = el nombre de la propiedad
valor = el valor de la propiedad
myObject = el objeto que estás iterando


filtrar su ng-repetir por la entrada del usuario

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

Dónde:
searchText = el texto por el cual el usuario quiere filtrar la lista
stringArray = una matriz de cadenas, por ejemplo, ['string', 'array']

También puede mostrar o hacer referencia a los elementos filtrados en otro lugar asignando un alias de salida de filtro as aliasName , de este 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 y ng-repeat-end

Para repetir varios elementos de DOM definiendo un inicio y un punto final, puede usar las directivas ng-repeat-start y 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>

Salida:

  • 1
  • 2
  • 3
  • 4

Es importante cerrar siempre ng-repeat-start con ng-repeat-end .

Variables

ng-repeat también expone estas variables dentro de la expresión

Variable Tipo Detalles
$index Número Es igual al índice de la iteración actual ($ index === 0 se evaluará como verdadero en el primer elemento iterado; vea $first )
$first Booleano Evalúa a verdadero en el primer elemento iterado
$last Booleano Evalúa a verdadero en el último elemento iterado
$middle Booleano Se evalúa como verdadero si el elemento se encuentra entre $first y $last
$even Booleano Se evalúa como verdadero en una iteración de número par (equivalente a $index%2===0 )
$odd Booleano Se evalúa como verdadero en una iteración de número impar (equivalente a $index%2===1 )

Consideraciones de rendimiento

La representación de ngRepeat puede ser lenta, especialmente cuando se usan colecciones grandes.

Si los objetos de la colección tienen una propiedad de identificador, siempre debe track by el identificador en lugar de todo el objeto, que es la funcionalidad predeterminada. Si no hay ningún identificador presente, siempre puede usar el $index incorporado.

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

Alcance de ngRepeat

ngRepeat siempre creará un ámbito secundario aislado, por lo que se debe tener cuidado si se debe acceder al ámbito principal dentro de la repetición.

Este es un ejemplo simple que muestra cómo puede establecer un valor en su ámbito principal desde un evento de clic dentro de 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'
}];

Si solo había val = item.value en ng-click , no se actualizará el val en el ámbito principal debido al ámbito aislado. Es por eso que se accede al alcance principal con $parent referencia de $parent o con la sintaxis de controllerAs (por ejemplo, ng-controller="mainController as ctrl" ).

Anidado ng-repetir

También puede utilizar ng-nest anidado.

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

Aquí para acceder al índice de padre ng-repeat dentro de hijo ng-repeat, puede usar $parent.$index .

ngShow y ngOcultar

La directiva ng-show muestra u oculta el elemento HTML en función de si la expresión que se le pasa es verdadera o falsa. Si el valor de la expresión es falsy, entonces se ocultará. Si es veraz entonces se mostrará.

La directiva ng-hide es similar. Sin embargo, si el valor es falsy, mostrará el elemento HTML. Cuando la expresión sea veraz la esconderá.

Ejemplo de JSBin de trabajo

Controlador :

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

Ver

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

ngOpciones

ngOptions es una directiva que simplifica la creación de un cuadro desplegable html para la selección de un elemento de una matriz que se almacenará en un modelo. El atributo ngOptions se usa para generar dinámicamente una lista de elementos <option> para el elemento <select> usando la matriz u objeto obtenido al evaluar la expresión de comprensión ngOptions.

Con ng-options el marcado se puede reducir a solo una etiqueta de selección y la directiva creará la misma selección:

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

Hay otra forma de crear opciones de select usando ng-repeat , pero no se recomienda usar ng-repeat ya que se usa principalmente para fines generales como, por ejemplo, forEach solo para hacer un bucle. Mientras que ng-options es específicamente para crear opciones de etiqueta select .

El ejemplo anterior usando ng-repeat sería

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

EJEMPLO COMPLETO

Veamos el ejemplo anterior en detalle también con algunas variaciones en él.

Modelo de datos para el ejemplo:

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

Etiqueta de opción generada en la selección:

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

Efectos:

f.label será la etiqueta de la <option> y el valor contendrá todo el objeto.

EJEMPLO COMPLETO


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

Etiqueta de opción generada en la selección:

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

Efectos:

f.value (4) será el valor en este caso mientras la etiqueta siga siendo la misma.

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

Etiqueta de opción generada en la selección:

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

Efectos:

Las opciones se agruparán en función de su value . Las opciones con el mismo value caerán en una categoría

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

Etiqueta de opción generada en la selección:

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

Efectos:

"Manzanas" y "Limas" se deshabilitarán (no se puede seleccionar) debido a la condición disable when f.value==4 . Todas las opciones con value=4 serán deshabilitadas

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

Etiqueta de opción generada en la selección:

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

Efectos:

No hay cambios visuales cuando se utiliza trackBy , pero Angular detectará los cambios por id lugar de por referencia, lo que siempre es una solución mejor.

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

Etiqueta de opción generada en la selección:

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

Efectos:

orderBy es un filtro estándar de AngularJS que organiza las opciones en orden ascendente (por defecto), por lo que "Naranjas" aparecerá en primer lugar desde su id = 1.

EJEMPLO COMPLETO


Todos los <select> con ng-options deben tener adjunto ng-model .

ngModel

Con ng-model puedes vincular una variable a cualquier tipo de campo de entrada. Puede mostrar la variable utilizando llaves dobles, por ejemplo, {{myAge}} .

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

A medida que ingresa el campo de entrada o lo modifica de alguna manera, verá el valor en la actualización del párrafo al instante.

La variable ng-model, en este caso, estará disponible en su controlador como $scope.myName . Si está utilizando la sintaxis de controllerAs :

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

Necesitará consultar el alcance del controlador antes de que el alias del controlador definido en el atributo ng-controller a la variable ng-model. De esta manera, no necesitará inyectar $scope en su controlador para hacer referencia a su variable ng-model, la variable estará disponible como this.myName dentro de la función de su controlador.

clase ng

Supongamos que necesita mostrar el estado de un usuario y que tiene varias clases posibles de CSS que podrían usarse. Angular hace que sea muy fácil elegir de una lista de varias clases posibles que le permiten especificar una lista de objetos que incluye condicionales. Angular es capaz de usar la clase correcta basada en la veracidad de los condicionales.

Su objeto debe contener pares clave / valor. La clave es un nombre de clase que se aplicará cuando el valor (condicional) se evalúe como verdadero.

<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 verificará el objeto $scope.user para ver el estado active y el número de level . Dependiendo de los valores en esas variables, Angular aplicará el estilo correspondiente a <span> .

ngIf

ng-if es una directiva similar a ng-show pero inserta o elimina el elemento del DOM en lugar de simplemente ocultarlo. Angular 1.1.5 introdujo la directiva ng-if. Puede usar la directiva ng-if por encima de las versiones 1.1.5. Esto es útil porque Angular no procesará los resúmenes de los elementos dentro de un ng-if eliminado ng-if reduce la carga de trabajo de Angular, especialmente para los enlaces de datos complejos.

A diferencia de ng-show , la directiva ng-if crea un ámbito secundario que usa herencia prototípica. Esto significa que establecer un valor primitivo en el ámbito secundario no se aplicará al padre. Para establecer una primitiva en el ámbito $parent propiedad $parent en el ámbito secundario deberá utilizarse.

JavaScript

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

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

Ver

<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 si currentUser no está indefinido

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

DOM Si currentUser está currentUser

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

Ejemplo de trabajo

Promesa de la función

La directiva ngIf también acepta funciones, que lógicamente requieren devolver verdadero o falso.

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

El texto de intervalo solo aparecerá si la función devuelve verdadero.

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

Como cualquier expresión angular, la función acepta cualquier tipo de variables.

ngMouseenter y ngMouseleave

Las ng-mouseenter y ng-mouseleave son útiles para ejecutar eventos y aplicar el estilo CSS cuando se desplaza dentro o fuera de sus elementos DOM.

La directiva ng-mouseenter ejecuta una expresión en un evento de ingreso de mouse (cuando el usuario ingresa el puntero del mouse sobre el elemento DOM en el que reside esta directiva)

HTML

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

En el ejemplo anterior, cuando el usuario apunta su mouse sobre el div , applyStyle cambia a true , que a su vez aplica la clase .active CSS en la ng-class .

La directiva ng-mouseleave ejecuta una expresión y un evento de salida del mouse (cuando el usuario retira el cursor del mouse del elemento DOM en el que reside esta directiva)

HTML

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

Reutilizando el primer ejemplo, ahora cuando el usuario le quita el puntero del mouse de la .active , la clase .active se elimina.

deshabilitado

Esta directiva es útil para limitar los eventos de entrada basados ​​en ciertas condiciones existentes.

La directiva ng-disabled acepta una expresión que debe evaluar valores verdaderos o falsos.

ng-disabled se utiliza para aplicar condicionalmente el atributo disabled en un elemento de 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 se evalúa como verdadero si la longitud de la input es 0, que a su vez desactiva el botón, impidiendo que el usuario dispare el evento click de ng-click

ngDblclick

La directiva ng-dblclick es útil cuando desea vincular un evento de doble clic en sus elementos DOM.

Esta directiva acepta una expresión.

HTML

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

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

En el ejemplo anterior, el valor retenido en la input se incrementará cuando se haga doble clic en el botón.

Hoja de trucos de directivas incorporadas

ng-app Establece la sección AngularJS.

ng-init Establece un valor variable predeterminado.

ng-bind Alternativa a la plantilla {{}}.

ng-bind-template Enlaza varias expresiones a la vista.

ng-non-bindable que los datos no son vinculables.

ng-bind-html Enlaza la propiedad HTML interna de un elemento HTML.

ng-change Evalúa la expresión especificada cuando el usuario cambia la entrada.

ng-checked Establece la casilla de verificación.

ng-class Establece la clase css dinámicamente.

ng-cloak Evita mostrar el contenido hasta que AngularJS tome el control.

ng-click Ejecuta un método o expresión cuando se hace clic en el elemento.

ng-controller Asocia una clase de controlador a la vista.

ng-disabled Controla la propiedad deshabilitada del elemento de formulario.

ng-form Establece un formulario

ng-href Vincule dinámicamente las variables AngularJS al atributo href.

ng-include Se utiliza para recuperar, compilar e incluir un fragmento de HTML externo a su página.

ng-if Quita o recrea un elemento en el DOM dependiendo de una expresión

ng-switch condicionalmente el control en función de la expresión correspondiente.

ng-model Enlaza elementos de entrada, selección, área de texto, etc. con propiedad de modelo.

ng-readonly Se utiliza para establecer el atributo readonly en un elemento.

ng-repeat Se utiliza para recorrer cada elemento de una colección para crear una nueva plantilla.

ng-selected Se utiliza para configurar la opción seleccionada en el elemento.

ng-show/ng-hide Muestra / ng-show/ng-hide elementos basados ​​en una expresión.

ng-src Vincular dinámicamente las variables AngularJS al atributo src.

ng-submit Enlazar expresiones angulares a eventos de envío.

ng-value Enlazar expresiones angulares al valor de.

ng-required Enlazar expresiones angulares a eventos de envío.

ng-style Establece el estilo CSS en un elemento HTML.

ng-pattern Agrega el validador de patrones a ngModel.

ng-maxlength Agrega el validador de maxlength a ngModel.

ng-minlength Agrega el validador de minlength a ngModel.

ng-classeven Funciona en conjunto con ngRepeat y surte efecto solo en filas impares (pares).

ng-classodd Funciona junto con ngRepeat y surte efecto solo en filas impares (pares).

ng-cut Se utiliza para especificar el comportamiento personalizado en el evento de corte.

ng-copy Se utiliza para especificar el comportamiento personalizado en el evento de copia.

ng-paste Se utiliza para especificar el comportamiento personalizado en el evento de pegado.

ng-options Se utiliza para generar dinámicamente una lista de elementos para el elemento.

ng-list Se utiliza para convertir una cadena en una lista en función del delimitador especificado.

ng-open Se utiliza para establecer el atributo abierto en el elemento, si la expresión dentro de ngOpen es veraz.

Fuente (editado un poco)

Haga clic en

La directiva ng-click adjunta un evento de clic a un elemento DOM.

La directiva ng-click permite especificar un comportamiento personalizado cuando se hace clic en un elemento de DOM.

Es útil cuando desea adjuntar eventos de clic en los botones y manejarlos en su controlador.

Esta directiva acepta una expresión con el objeto de eventos disponible como $event

HTML

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

Controlador

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

Controlador

...

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

Cuando se hace clic en el botón, una invocación de la función onClick imprimirá "Hola evento de clic" seguido del objeto de evento.

ngRequisito

ng-required agrega o elimina el atributo de validación required en un elemento, que a su vez habilitará y deshabilitará la clave de validación require para la input .

Se usa para definir opcionalmente si se requiere que un elemento de input tenga un valor no vacío. La directiva es útil cuando se diseña la validación en formularios HTML complejos.

HTML

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

ng-model-options

ng-model-options permite cambiar el comportamiento predeterminado de ng-model , esta directiva permite registrar eventos que se activarán cuando se actualice el modelo ng y adjuntar un efecto de rebote.

Esta directiva acepta una expresión que evaluará un objeto de definición o una referencia a un valor de alcance.

Ejemplo:

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

El ejemplo anterior adjuntará un efecto de rebote de 500 milisegundos en myValue , lo que hará que el modelo se actualice 500 ms después de que el usuario haya terminado de escribir sobre la input (es decir, cuando myValue finalizado la actualización).

Propiedades de objeto disponibles

  1. updateOn : especifica qué evento debe estar vinculado a la entrada

    ng-model-options="{ updateOn: 'blur'}" // will update on blur
    
  2. debounce : especifica un retraso de algunos milisegundos hacia la actualización del modelo

    ng-model-options="{'debounce': 500}" // will update the model after 1/2 second
    
  3. allowInvalid : un indicador booleano que permite un valor no válido para el modelo, evitando la validación de formularios por defecto, de forma predeterminada, estos valores se tratarían como undefined .

  4. getterSetter : un indicador booleano que indica si se debe tratar el ng-model como una función getter / setter en lugar de un valor de modelo simple. La función se ejecutará y devolverá el valor del modelo.

    Ejemplo:

    <input type="text" ng-model="myFunc" ng-model-options="{'getterSetter': true}">
    
    $scope.myFunc = function() {return "value";}
    
  5. timezone : define la zona horaria para el modelo si la entrada es de la date o la time . tipos

capa ng

La directiva ngCloak se usa para evitar que el navegador muestre brevemente la plantilla html Angular en su forma original (sin compilar) mientras se carga la aplicación. - Ver fuente

HTML

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

ngCloak se puede aplicar al elemento del cuerpo, pero el uso preferido es aplicar varias directivas ngCloak a pequeñas porciones de la página para permitir la representación progresiva de la vista del navegador.

La directiva ngCloak no tiene parámetros.

Ver también: prevenir el parpadeo

ngIncluir

ng-include le permite delegar el control de una parte de la página a un controlador específico. Es posible que desee hacer esto porque la complejidad de ese componente se está volviendo tal que desea encapsular toda la lógica en un controlador dedicado.

Un ejemplo es:

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

Tenga en cuenta que la /gridview deberá ser servida por el servidor web como una URL distinta y legítima.

Además, tenga en cuenta que el atributo src acepta una expresión angular. Esto podría ser una variable o una función llamada, por ejemplo, o, como en este ejemplo, una constante de cadena. En este caso, debe asegurarse de envolver la URL de origen entre comillas simples , para que se evalúe como una constante de cadena. Esta es una fuente común de confusión.

Dentro de /gridview html, puede referirse a gridController como si estuviera envuelto alrededor de la página, por ejemplo:

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

ngSrc

El uso del marcado angular como {{hash}} en un atributo src no funciona bien. El navegador buscará desde la URL con el texto literal {{hash}} hasta que Angular reemplace la expresión dentro de {{hash}} . ng-src directiva ng-src anula el atributo src original para el elemento de etiqueta de imagen y resuelve el problema

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

ngPatrón

La directiva ng-pattern acepta una expresión que se evalúa como un patrón de expresión regular y usa ese patrón para validar una entrada de texto.

Ejemplo:

Digamos que queremos que un elemento <input> sea ​​válido cuando su valor (ng-model) es una dirección IP válida.

Modelo:

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

Controlador:

$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

Utilizado principalmente en ng-repeat ngValue es útil cuando se generan dinámicamente listas de botones de radio 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>

Plnkr de trabajo

ngCopy

La directiva ngCopy especifica el comportamiento que se ejecutará en un evento de copia.

Evitar que un usuario copie datos

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

En el controlador

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

ngPaste

La directiva ngPaste especifica un comportamiento personalizado para ejecutarse cuando un usuario pega contenido

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

ngHref

ngHref se usa en lugar del atributo href, si tenemos expresiones angulares dentro del valor href. La directiva ngHref anula el atributo href original de una etiqueta html usando el atributo href como etiqueta, etiqueta, etc.

La directiva ngHref asegura que el enlace no esté roto, incluso si el usuario hace clic en el enlace antes de que AngularJS haya evaluado el código.

Ejemplo 1

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

Ejemplo 2 Este ejemplo obtiene dinámicamente el valor href del cuadro de entrada y lo carga como valor href.

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

Ejemplo 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 directiva ng-list se usa para convertir una cadena delimitada de una entrada de texto a una matriz de cadenas o viceversa.

La directiva ng-list usa un delimitador predeterminado de ", " (espacio de coma).

Puede configurar el delimitador manualmente asignando ng-list un delimitador como este ng-list="; " .

En este caso, el delimitador se establece en un punto y coma seguido de un espacio.

Por defecto, ng-list tiene un atributo ng-trim que se establece en verdadero. ng-trim cuando es falso, respetará el espacio en blanco en su delimitador. De forma predeterminada, ng-list no tiene en cuenta el espacio en blanco a menos que establezca ng-trim="false" .

Ejemplo:

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

Un delimitador del cliente se establece para ser ; . Y el modelo del cuadro de entrada se establece en la matriz que se creó en el ámbito.

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

El cuadro de entrada se mostrará con el contenido: angular; is; cool!



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow