Jak ustawić atrybut id elementu HTML dynamicznie za pomocą angularjs (1.x)?
Pod warunkiem elementu HTML typu div
, Jak ustawić wartość jego atrybutu id
, który jest połączeniem zmiennej scope i łańcucha znaków ?
6 answers
ngAttr
dyrektywa może być tutaj całkowicie pomocna, jak wprowadzono w oficjalnej dokumentacji
Https://docs.angularjs.org/guide/interpolation#-ngattr-for-binding-to-arbitrary-attributes
Na przykład, aby ustawić wartość atrybutu id
elementu div
tak, aby zawierał indeks, fragment widoku może zawierać
<div ng-attr-id="{{ 'object-' + myScopeObject.index }}"></div>
Które byłyby interpolowane do
<div id="object-1"></div>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-14 14:52:11
To coś działało na mnie całkiem nieźle:
<div id="{{ 'object-' + $index }}"></div>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-13 05:45:12
Bardziej eleganckim sposobem, jaki znalazłem, aby osiągnąć to zachowanie, jest po prostu:
<div id="{{ 'object-' + myScopeObject.index }}"></div>
Dla mojej implementacji chciałem, aby każdy element wejściowy w ng-repeat miał unikalny identyfikator, z którym można powiązać Etykietę. Tak więc dla tablicy obiektów zawartych w obiektach myScopeObjects można to zrobić:
<div ng-repeat="object in myScopeObject">
<input id="{{object.name + 'Checkbox'}}" type="checkbox">
<label for="{{object.name + 'Checkbox'}}">{{object.name}}</label>
</div>
Możliwość generowania unikalnych identyfikatorów w locie może być bardzo przydatna przy dynamicznym dodawaniu takich treści.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-16 16:53:49
W przypadku gdybyś przyszedł do tego pytania, ale związane z nowszą Wersja kątowa > = 2.0.
<div [id]="element.id"></div>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-17 16:06:00
Możesz po prostu wykonać następujące czynności]}
W Twoim js
$scope.id = 0;
W szablonie
<div id="number-{{$scope.id}}"></div>
Który wyrenderuje
<div id="number-0"></div>
Nie jest konieczne łączenie wewnątrz podwójnych nawiasów klamrowych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-07 12:07:28
Jeśli używasz tej składni:
<div ng-attr-id="{{ 'object-' + myScopeObject.index }}"></div>
Angular renderuje coś w stylu:
<div ng-id="object-1"></div>
Jednak ta składnia:
<div id="{{ 'object-' + $index }}"></div>
Wygeneruje coś w stylu:
<div id="object-1"></div>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-22 17:13:31