Bir HTML öğesi türü sağladığında, kapsam değişkeninin ve dizenin birleşimi olan özniteliğinin divdeğ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 divdeğ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>
myScopeObjectbir scopenesnenin 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-idDurumların% 0'ında avantajlıdır. Hiçbir örnek verilemez, çünkü hiçbiri yoktur.
ng-attr-idYöntem ham ng ifadesi (örneğin geçerli bir HTML özelliğinde işlenen asla sağlamaktır id, labelvs.). 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-idyaratmalı ng-id..? bu yanlış. Bunu kimin oyladığını merak ediyorum
myScopeObjectgeliyor? Nerede tanımlayabilirim?