Pourvu d'un élément HTML de type div
, comment définir la valeur de son id
attribut, qui est la concaténation d'une variable de portée et d'une chaîne?
javascript
angularjs
angularjs-scope
string-concatenation
Thierry Marianne
la source
la source
myScopeObject
vient-il? Où pourrais-je le définir?myScopeObject
la propriété d'unscope
objet soit exposée à l'aide d'un contrôleur. Veuillez également consulter docs.angularjs.org/guide/controller . Est-ce assez clair pour vous ou dois-je développer davantage?<div id="{{ 'object' + index }}">
et<div ng-attr-id="{{ 'object' + index }}">
? Les documents semblent dire que le préfixeng-attr-
est d'aider dans les cas où l'élément est quelque chose de non standard, comme pas un<div>
. Suis-je en train de lire les documents à droite?Cette chose a très bien fonctionné pour moi:
<div id="{{ 'object-' + $index }}"></div>
la source
ng-attr-id
est avantageux dans 0% des situations. Aucun exemple ne peut être fourni, car il n'y en a pas.ng-attr-id
méthode consiste à faire en sorte que l'expression ng brut est jamais rendu dans un attribut HTML valide (par exempleid
,label
etc.). Ceci permet d'empêcher toute utilisation en aval de lire les «ordures» (par exemple avant que le rendu ne soit terminé, ou après un crash js)Dans le cas où vous êtes venu à cette question mais lié à une nouvelle version angulaire> = 2.0 .
la source
Une manière plus élégante que j'ai trouvée pour obtenir ce comportement est simplement:
Pour mon implémentation, je voulais que chaque élément d'entrée dans une répétition ng ait chacun un identifiant unique auquel associer l'étiquette. Donc, pour un tableau d'objets contenus dans myScopeObjects, on pourrait faire ceci:
Pouvoir générer des identifiants uniques à la volée peut être très utile lors de l'ajout dynamique de contenu comme celui-ci.
la source
Vous pouvez simplement faire ce qui suit
Dans votre js
Dans votre modèle
qui rendra
Il n'est pas nécessaire de concaténer les crochets intérieurs doubles.
la source
Juste
<input id="field_name_{{$index}}" />
la source
Si vous utilisez cette syntaxe:
Angular rendra quelque chose comme:
Cependant cette syntaxe:
va générer quelque chose comme:
la source
ng-attr-id
créerng-id
..? c'est faux. Je me demande qui vote positivement