2013-06-04 11 views
5

Seçenekleri yüklemek için seçim öğeleri için aşağıdaki veri özniteliğini saklıyorum.ayrı veri özelliklerini haiz üzerinde tavsiye edilen veriler attriibute JSON saklamak mı?

<select name="DependsOn_Field" data-load='automatic' data-source='web.module().fields' data-value='name' data-display='label' data-filter='exclude_single' id='DependantField'></select> 

Sorularım birçok veri depolamak için ihtiyaç tek DOM elemanı için öznitelikleri zaman en iyi yolu nedir? JSON verisine sahip olan veya gereken her bir değer için ayrı veri özelliklerine sahip olan tek bir veri özelliğine sahip olmak daha iyidir.

+0

Tek tek veri öznitelikleri muhtemelen daha fazla korunabilir, eğer JSON'u bir veri alanının içinde depolarsanız, yine de JSON'u ayrıştırmanız gerekecektir. – itsmejodie

+0

Sanırım özellikler daha okunabilir olurdu, ancak JSON birçok veriyi depolamak için daha mantıklı bir yol olurdu. Değişiklik yapıldığında ise JSON bir dizeye geri okunacak bir nesneye dönüştürülmesi gereken ve buna nitelikleri de daha erişilebilir. İdeal olarak, verileri tutan ve bir düğüme bağlı olan ve bu sorunu tamamen ortadan kaldıran JavaScript nesneleriniz olur. JSON istenilen değerin kendisi değilse – Marty

+1

, sadece niteliklerin "paket" sürü kullanmak asla. Sadece bunun için değil. – acdcjunior

cevap

2

Bence buradaki veri kaynakları statik mi? Muhtemelen değişecekler mi? Değiştireceklerse veya bunları düzenlemek isterseniz, JSON kesinlikle daha iyidir. bunlar statik ve sadece bu özellikleri okuyacakları Ancak, ben bu tam veri niteliği için budur, veri niteliği iyi olduğunu düşünüyorum. Biliyorum, hantal görünüyor çünkü bir sürü özniteliğin var ama bence gayet iyi. Değiştirmek veya düzenlemek için bunları istemciler tarayıcısında dinamik olarak düzenlemek istiyorum.

Bu yardımcı olur umarım.

1

Tamamen nasıl kullanıldığına bağlıdır.

Değerleriniz basit dizelerdeyse ve bunlara JavaScript'ten erişiyorsanız, onları data- özniteliklerinde tutmak mantıklıdır. yazılı değerler kompleks JSON nesneleri ise

, o zaman bir data- özelliğinde tam JSON değeri saklamak için daha mantıklı ve okuyacak bir yardımcı tanımlayabilir (jQuery kullanılabilir basitlik için varsayılarak):

function getElemData(elem) { 
    var $elem = $(elem); 
    var elemData = $elem.data("_jsonData"); 
    if (!elemData) { 
     elemData = JSON.parse($elem.attr("data-json-data")); 
     $elem.data("_jsonData", elemData); 
    } 
    return elemData; 
} 

Ve son olarak, veriler sadece etrafından geçiyorsa (ör. Sunucu tarafından yazılır, okuyup doğrudan başka bir yere gönderilir), bloğun tamamını tek bir data- özniteliğinde tutması mantıklıdır.

+0

Cevabınız için teşekkür ederiz. Bir düzeltme jQuery veri özniteliğindeki değeri kontrol eder ve {ile başlarsa onu ayrıştırır. – Nishanthan

+0

Ug sağ - ben '$ .data' ait iğrenç davranış hakkında unuttum. Ug. Evet - çünkü erişmek için '$ .data' kullanarak o ayrıştırma büyü ait' veri 'özellikler kesinlikle yardımcı fonksiyonu için dolayısıyla ihtiyaç asla kullanılmamalıdır. Bu durumda, özellik veya veri adı değiştirilmelidir (yaptığım). –

İlgili konular