Modele html öğesiyle açısal2'de erişmem gerekiyor. Benim durumumda sürükle-bırak işlemini gerçekleştirmek için ng2-dragula kullanıyorum ve servisi sadece sürüklenen html öğelerine erişebiliyor. Ve elemanın ilgili modelini güncellemem gerekiyor. Sorun, github numaralı telefondan.angular2'de html öğesiyle model al
cevap
Eğer ngFor'unuz bir diziden derlenmişse, torba elemanındaki dragulaModel özniteliğini ayarlayarak model sağlamanız gerekir. Eğer ürün yeniden konumlandırmak zaman
<ul [dragula]='"bag-one"' [dragulaModel]='items'> <li *ngFor="let item of items"></li> </ul>
Ve model senkronize edilir. Bileşeninizde, güncelleştirilmiş modeli kolayca yapabilirsiniz.
this.dragulaService.drop.subscribe((value) => {
//let [bagName, e, el] = value;
console.log(this.items);
});
Öğelerin, modelinizde yeniden konumlandırıldığını göreceksiniz.
Hangi öğenin taşınmadığını açıkça belirtmenin bir yolu yok mu? – Umagon
Öğenizin modelini, aboneliğin bağımsız değişkenleri tarafından sağlanan element
dizini için elementList
dizininde arayarak alabilirsiniz.
dragulaService.drop.subscribe(e => this.onDrop(e.slice(1)));
See?
GÜNCELLEME: Basitleştirme (Dracco sayesinde)
private onDrop(args) {
let [e, el] = args; //element, elementList
let i = el.children.indexOf(e),
item = i+1? this.items[i] : null;
console.log(item); //The item
}
this.items
Eğer dragula geçmek listesini depolamak değişkendir. (ör. [dragulaModel]="items"
).
Keşke daha basit bir yol vardı. Bir tane bulursan söyle!
Eski yol:
private onDrop(args) {
let [e, el] = args; //element, elementList
let item;
for(let i in el.children){
if(el.children[i]==e){
item = this.items[+i];
break;
}
}
console.log(item); //The item
}
DÜZENLEME: basitleştirme bir hata vardı.
Aynı şekilde daha basit bir biçim: indexOf kullanın https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf – Dracco
Model bu durumdan alamıyorum. Sadece html öğelerine yapılan referanslar –
Üzgünüm, Basitleştirilmiş formda bir hata oluştu. Şimdi tamir ettim. – Umagon
el.children'i bir ES6 Dizisinde sardığınızdan emin olun.
let i = el.children.indexOf(e)
Ben de ebeveyn listeden indeksi çocuk eleman alınırken öngörülemeyen sonuçlar üretmiştir ve bazen yeni tanımsız öğeler yarattığı ortaya çıktı
let i = Array.from(el.children).indexOf(e)
olmalı.
Alternatif Doğrudan Kimliği Çözüm:
<ion-item *ngFor="let child of children" [id]="child"></ion-item>
ve ardından "öğesinin modeli" ile ondrop yöntemiyle
console.log(e.id);
- 1. Model sınıfından sembol al
- 2. Backbone.Collection modele göre model al
- 3. Django- Yabancı Anahtar Model Al
- 4. Şablonda Model Alan Adı Al
- 5. Html Rgb rengi al
- 6. Özel bir HTML öğesiyle bir resim kullanım haritası mı kullanıyorsunuz?
- 7. Denetleyicide HTML denetimleri değeri al
- 8. Model formu sakla. Kaydedilen nesneyi al
- 9. Django'da Model Biçimlendirildikten Sonra Birincil Anahtar Al
- 10. ng-model ve dropdown, değer al, değer değil
- 11. Veritabanından HTML al ve düz metin yerine html olarak biçimlendir
- 12. Codebehind C# giriş giriş html değeri al #
- 13. HTML etiketleri dahil seçilen metni al
- 14. html kısmi için bir parametre ilet ve kısmi html içindeki değeri al
- 15. Python: ith öğesiyle birlikte x'in yerini değiştirin.
- 16. al
- 17. django form hataları. Herhangi bir html etiketi olmadan hatayı al
- 18. ng-model ng-bind-html ile nasıl oluşturulur
- 19. Bazı diğer html öğelerinin model değeri temelinde ng-show
- 20. Model nesnesine özel bir HTML yardımcı aracında erişme
- 21. Model
- 22. Model
- 23. Model
- 24. Model
- 25. Model
- 26. Model
- 27. Jquery öğesi al
- 28. HTML5 tuval öğesiyle hangi komut dosyası dilleri kullanılabilir?
- 29. Python/Tkinter: seçili menü öğesiyle ilgili olaya bağlan
- 30. AngularJS'de Geçerli Denetleyici Adı Al
içinde bazı bileşenin özelliklerini anlama geliyor? Bazı kodlar yardımcı olur (Plunker tercih edilir). –
@MarkRajcok Kod github'ta, bağlantının sonunda soru var. Bu elementi oluşturan angular2 modelini kastettim. Kodu kontrol ettikten sonra açık değilse bana bildirin. –
"HTML elemanından bileşene" gitmenin herhangi bir yolunun farkında değilim - yani, bir HTML verildiğinde, bu HTML öğesinin kullanıldığı bileşenle ilgili bir referansın nasıl alınacağını bilmiyorum ... bileşen şablonu bu HTML öğesine sahip. –