Proporcionado un elemento HTML de tipo div
, ¿cómo establecer el valor de su id
atributo, que es la concatenación de una variable de alcance y una cadena?
javascript
angularjs
angularjs-scope
string-concatenation
Thierry Marianne
fuente
fuente
myScopeObject
viene ¿Dónde lo definiría?myScopeObject
es una propiedad de unscope
objeto expuesto utilizando un controlador. Consulte también docs.angularjs.org/guide/controller . ¿Eso es lo suficientemente claro para ti o debo explicarlo más?<div id="{{ 'object' + index }}">
y<div ng-attr-id="{{ 'object' + index }}">
? Los documentos parecen decir que anteponerng-attr-
es ayudar en casos donde el elemento es algo no estándar, como no un<div>
. ¿Estoy leyendo los documentos correctamente?Esto me funcionó bastante bien:
<div id="{{ 'object-' + $index }}"></div>
fuente
ng-attr-id
Es ventajoso en 0% de las situaciones. No se pueden proporcionar ejemplos, porque no hay ninguno.ng-attr-id
método es para asegurar que la expresión ng cruda nunca es generado en un atributo HTML válido (por ejemploid
,label
, etc). Esto es para detener cualquier uso posterior que lea ng 'basura' (por ejemplo, antes de que se complete el renderizado, o después de un bloqueo de js)En caso de que haya llegado a esta pregunta pero esté relacionado con la versión angular más nueva > = 2.0 .
fuente
Una forma más elegante que encontré para lograr este comportamiento es simplemente:
Para mi implementación, quería que cada elemento de entrada en una repetición ng tuviera una identificación única para asociar la etiqueta. Entonces, para una matriz de objetos contenidos dentro de myScopeObjects, se podría hacer esto:
Ser capaz de generar identificadores únicos sobre la marcha puede ser muy útil al agregar dinámicamente contenido como este.
fuente
Podrías simplemente hacer lo siguiente
En tu js
En su plantilla
que rendirá
No es necesario concatenar dentro de llaves dobles.
fuente
Sólo
<input id="field_name_{{$index}}" />
fuente
Si usa esta sintaxis:
Angular representará algo como:
Sin embargo, esta sintaxis:
generará algo como:
fuente
ng-attr-id
crearng-id
..? eso está mal. Me pregunto quién votará esto