2012-05-17 20 views
9

data-win-control="WinJS.Binding.Template" içindeki bir özelliğin değerine bağlı olarak göstermek veya gizlemek istediğim bir div içeren bir şablon içeren bir Windows 8 uygulaması var. Şans dahi yok denedim: isMore veri sınırlama öğenin bir boole özelliktirWinJS Şablonu'nda div gösterme/gizleme nasıl dinamik olarak

<div data-win-bind="visible: isMore"> ..content... </div> 

.

Bunu nasıl yapabilirim? Görünür özellik mevcut değil mi?

cevap

14

Haklısınız - visible özelliği yok, ancak görünümü CSS ve bağlaç dönüştürücüsü kullanarak denetleyebilirsiniz.

Birincisi, böyle CSS ekran özelliği için bir değer değerine bir boole çeviren bir dönüştürücü işlevini oluşturmak için WinJS.Binding.converter kullanın:

var myConverter = WinJS.Binding.converter(function (val) { 
    return val ? "block" : "none"; 
}); 

işlevi genel olarak kullanılabilir olduğundan emin olun - Yapmak WinJS.Namespace.define kullanmak küresel olarak alabileceğim bu dönüştürücülerin koleksiyonlarını oluşturun. Bunun dolayısıyla görünen stili yerine "blok" için "başlangıç" ayarlamak için

<div data-win-bind="style.display: isMore myConverter"> ..content... </div> 
+2

daha iyi olurdu:

Şimdi böyle CSS ekran özelliği kontrol etmek bağlama Verilerinizde dönüştürücü kullanabilirsiniz span 'elemanları için de kullanılabilir. – philk

+0

Ekranı kullanıyorum: none özelliği .. öğe öğesinden kaldırıldı ancak boş ekranlı öğe var ... Varsayılan olarak ilk satırın boyutunu alır. –

İlgili konular