Vorausgesetzt , ein HTML - Element des Typs div
, wie man den Wert seines einzustellen id
Attribut, das die Verkettung eines Umfang Variablen und eine Zeichenfolge ist?
javascript
angularjs
angularjs-scope
string-concatenation
Thierry Marianne
quelle
quelle
myScopeObject
das? Wo würde ich es definieren?myScopeObject
handelt sich um eine Eigenschaft einesscope
Objekts, das mithilfe eines Controllers verfügbar gemacht wird. Siehe auch docs.angularjs.org/guide/controller . Ist Ihnen das klar genug oder werde ich weiter darauf eingehen?<div id="{{ 'object' + index }}">
und<div ng-attr-id="{{ 'object' + index }}">
? Die Dokumente scheinen zu sagen, dass das Voranstellenng-attr-
in Fällen hilfreich ist, in denen das Element nicht dem Standard entspricht, z. B. nicht a<div>
. Lese ich die Dokumente richtig?Dieses Ding hat bei mir ziemlich gut funktioniert:
<div id="{{ 'object-' + $index }}"></div>
quelle
ng-attr-id
ist in 0% der Situationen vorteilhaft. Es können keine Beispiele angegeben werden, da es keine gibt.ng-attr-id
Verfahren besteht darin , sicherzustellen , dass der rohe ng Ausdruck nie in einem gültigen HTML - Attribute gerendert wird (zBid
,label
usw.). Dies dient dazu, jegliche nachgelagerte Verwendung von ng 'Junk' zu stoppen (z. B. bevor das Rendern abgeschlossen ist oder nach einem js-Absturz)Falls Sie zu dieser Frage gekommen sind, sich aber auf eine neuere Angular-Version> = 2.0 beziehen .
quelle
Ein eleganterer Weg, dieses Verhalten zu erreichen, ist einfach:
Für meine Implementierung wollte ich, dass jedes Eingabeelement in einer ng-Wiederholung eine eindeutige ID hat, mit der das Label verknüpft werden kann. Für ein Array von Objekten in myScopeObjects könnte man also Folgendes tun:
Wenn Sie solche Inhalte dynamisch hinzufügen, kann es sehr nützlich sein, im laufenden Betrieb eindeutige IDs zu generieren.
quelle
Sie können einfach Folgendes tun
In deinem js
In Ihrer Vorlage
was wird rendern
Es ist nicht erforderlich, in doppelten geschweiften Klammern zu verketten.
quelle
Gerade
<input id="field_name_{{$index}}" />
quelle
Wenn Sie diese Syntax verwenden:
Angular rendert so etwas wie:
Jedoch diese Syntax:
wird so etwas erzeugen wie:
quelle
ng-attr-id
erstellenng-id
..? das ist falsch. Ich frage mich, wer dies positiv bewertet