Bir HTML öğesi türü sağladığında, kapsam değişkeninin ve dizenin birleşimi olan özniteliğinin div
değeri nasıl ayarlanır id
?
Bir HTML öğesi türü sağladığında, kapsam değişkeninin ve dizenin birleşimi olan özniteliğinin div
değeri nasıl ayarlanır id
?
Yanıtlar:
ngAttr
Direktif, resmi belgelerde belirtildiği gibi burada tamamen yardımcı olabilir
https://docs.angularjs.org/guide/interpolation#-ngattr-for-binding-to-arbitrary-attributes
Örneğin id
, bir div
öğenin öznitelik değerini bir dizin içerecek şekilde ayarlamak için , bir görünüm parçası
<div ng-attr-id="{{ 'object-' + myScopeObject.index }}"></div>
hangi enterpolasyona girer
<div id="object-1"></div>
myScopeObject
bir scope
nesnenin bir özelliği . Lütfen ayrıca docs.angularjs.org/guide/controller adresine bakın . Bu sizin için yeterince açık mı yoksa daha fazla ayrıntıya gireyim mi?
<div id="{{ 'object' + index }}">
ve <div ng-attr-id="{{ 'object' + index }}">
? Dokümanlar ng-attr-
, öneklemenin , a öğesinin standart olmayan bir şey olduğu durumlarda yardımcı olmak olduğunu söylüyor <div>
. Dokümanları doğru okuyor muyum?
Bu şey benim için oldukça iyi çalıştı:
<div id="{{ 'object-' + $index }}"></div>
ng-attr-id
Durumların% 0'ında avantajlıdır. Hiçbir örnek verilemez, çünkü hiçbiri yoktur.
ng-attr-id
Yöntem ham ng ifadesi (örneğin geçerli bir HTML özelliğinde işlenen asla sağlamaktır id
, label
vs.). Bu, 'önemsiz' okuma aşağı akış kullanımını durdurmak içindir (örneğin, render tamamlanmadan önce veya bir js çökmesinden sonra)
Bu soruya geldiyseniz ancak daha yeni Açısal sürüm> = 2.0 ile ilgili olması durumunda .
<div [id]="element.id"></div>
Bu davranışı elde etmek için bulduğum daha zarif bir yol:
<div id="{{ 'object-' + myScopeObject.index }}"></div>
Benim uygulama için her giriş öğesinin ng-tekrar her etiket ile ilişkilendirmek için benzersiz bir kimliği olmasını istedim. Yani myScopeObjects içinde bulunan bir dizi nesne için bunu yapabilirsiniz:
<div ng-repeat="object in myScopeObject">
<input id="{{object.name + 'Checkbox'}}" type="checkbox">
<label for="{{object.name + 'Checkbox'}}">{{object.name}}</label>
</div>
Bu tür içeriği dinamik olarak eklerken anında benzersiz kimlikler oluşturabilmek oldukça yararlı olabilir.
Sadece <input id="field_name_{{$index}}" />
Bu sözdizimini kullanırsanız:
<div ng-attr-id="{{ 'object-' + myScopeObject.index }}"></div>
Açısal:
<div ng-id="object-1"></div>
Ancak bu sözdizimi:
<div id="{{ 'object-' + $index }}"></div>
şöyle bir şey üretecek:
<div id="object-1"></div>
ng-attr-id
yaratmalı ng-id
..? bu yanlış. Bunu kimin oyladığını merak ediyorum
myScopeObject
geliyor? Nerede tanımlayabilirim?