select
CSS'nin somutlaştırılmasındaki işlevsellik tasarımı bence onu kullanmamak için oldukça iyi bir neden.
material_select()
@ Littleguy23'ün bahsettiği gibi , seçme elemanını ile başlatmanız gerekir . Bunu yapmazsanız, seçim kutusu bile görüntülenmez! Eski moda bir jQuery uygulamasında, onu belge hazır işlevinde başlatabilirim. Tahmin edin ne ben ne de başka pek çok insan bugünlerde jQuery'yi kullanıyor, ne de uygulamalarımızı belge hazır kancasında başlatmıyoruz.
Dinamik olarak oluşturulan seçimler . Ember gibi anında görünüm üreten bir çerçevede olduğu gibi dinamik olarak seçimler oluşturuyorsam ne olur? Her görünüm oluşturulduğunda seçim kutusunu başlatmak için her görünüme mantık eklemem veya bunu benim için işlemek için bir görünüm karışımı yazmam gerekiyor. Ve bundan daha kötüsü: görünüm oluşturulduğunda ve Ember terimleriyle didInsertElement
çağrıldığında, seçim kutusu için seçenekler listesine bağlanma henüz çözülmemiş olabilir, bu nedenle, seçenek listesini gözlemlemek için özel bir mantığa ihtiyacım var. çağrılmadan önce doldurulur material_select
. Seçenekler kolayca değiştirilebilecekleri gibi değişirse, bunun material_select
hakkında hiçbir fikri yoktur ve açılır menüyü güncellemez. material_select
Seçenekler değiştiğinde tekrar arayabilirim , ancak bu hiçbir şey yapmıyor gibi görünüyor (yok sayılıyor).
Başka bir deyişle, CSS'nin seçim kutularını somutlaştırmanın ardındaki tasarım varsayımının, sayfa yüklenirken hepsinin orada olması ve değerlerinin asla değişmemesi olduğu görülmektedir.
Uygulama . Estetik bir bakış açısından, CSS'nin açılır menülerini uygulama şeklinden de yana değilim, yani DOM'da başka bir yerde paralel, gölge öğeler kümesi oluşturmak. Kabul edilirse, select2 gibi alternatifler aynı şeyi yapar ve bazı görsel efektleri elde etmenin başka bir yolu olmayabilir (gerçekten?). Yine de bana göre, bir öğeyi incelediğimde, birisinin sihirli bir şekilde yarattığı gölge versiyonunu değil, o öğeyi görmek istiyorum.
Ember görünümü bozduğunda, CSS'nin oluşturduğu gölge unsurlarını parçaladığından emin değilim. Aslında, olursa çok şaşırırım. Teorim doğruysa, görünümler üretilip yıkıldıkça DOM'nuz hiçbir şeye bağlı olmayan düzinelerce gölge açılır setiyle kirlenecek. Bu yalnızca Ember için değil, diğer tüm MVC / şablon tabanlı OPA ön uç çerçeveleri için de geçerlidir.
Bağlamalar . Ayrıca, bir {{view 'Ember.Select' value=country}}
tür arabirimi aracılığıyla seçim kutularını çağıran Ember gibi bir çerçevede yararlı olan herhangi bir şeye geri bağlanmak için iletişim kutusunda seçilen değeri nasıl elde edeceğimi de çözemedim . Diğer bir deyişle, bir şey seçildiğinde country
güncellenmez. Bu bir anlaşma bozucu.
Dalgalar . Bu arada, aynı sorunlar düğmelerdeki "dalga" efekti için de geçerlidir. Her düğme oluşturulduğunda onu başlatmanız gerekir. Şahsen dalga etkisi umrumda değil ve tüm yaygaraların ne hakkında olduğunu anlamıyorum, ancak dalgalar istiyorsanız, hayatınızın geri kalanının büyük bir bölümünü nasıl yapılacağı konusunda endişelenerek geçireceğinizi unutmayın. Oluşturulduğunda her bir düğmeyi başlatın.
CSS çalışanlarının gerçekleştirdiği çabayı takdir ediyorum ve orada bazı güzel görsel efektler var, ancak çok büyük ve yukarıdaki gibi kullanacağım bir şey olmak için çok fazla sorun var. Şimdi uygulamamdan CSS'yi somutlaştırmayı ve Bootstrap'e veya Suit CSS'nin üstündeki bir katmana geri dönmeyi planlıyorum. Aletleriniz hayatınızı kolaylaştırmalı, zorlaştırmamalıdır.
<select class="browser-default">