2015-06-01 30 views
7

Polimer 0.5'de, nesne değerlerine bağlı olarak sınıfları koşullu olarak uygulamak için bir öğe sınıfı özniteliğindeki ifadelerle tokenList filtresini kullanabilirsiniz. V1.0 yerine veya eşdeğer teknik nedir? Konuyla ilgili olarak tamamen kodda çalışmanın ötesinde hiçbir şey bulamıyorum.Polimer 1.0 için tokenList stiline ne oldu?

+1

[Bilgisayarlı bağlamaları] (https://www.polymer-project.org/1.0/docs/devguide/data: bildirimli senin öğeye bir sınıf adını eklemeniz gerekiyorsa, böyle bir şey yapabileceğini -binding.html # açıklamalı-hesaplanmış) –

cevap

3

Polimer 1.0, performans kazançları lehine birkaç kesinti yaptı, bunlardan biri olan ifadeler. Sen yeniden yazma olabilir

<div class="{{ {active: user.selected, big: user.type == 'super'} | tokenList}}"> 

1.0 için şöyle: sizin elementin js Sonra

<div class$="{{getClassList(user.selected, user.type)}}"> 

:

getClassList: function(selected, type) { 
    var classList = ''; 
    if (selected) classList += ' active'; 
    if (type == 'super') classList += 'big'; 
    return classList; 
} 

Yap 0,5 belgelerinden örneği kullanarak

değişime tabi olan herhangi bir özellik (ve sonuçta ortaya çıkan değerin) paramete olarak geçtiğinden emin olun işlevine rs. Bu özellikler güncellenirse, polimer değeri yeniden hesaplayacaktır. Ayrıca, işleve iletilen her özelliğin bir şekilde başlatıldığından emin olun - Herhangi bir bağımsız değişken undefined ise, Polymer özelliği hesaplamaz.

farkında olmak başka şey class="foo {{bar}}" gibi şeyler olamaz bu yüzden {{}} herhangi bir olay, bütün nitelik veya metin içeriği almak gerektiğidir.

<div class$="{{getClassList('user-item', user.selected, user.type)}}"> 
+0

Sanırım bu 'büyük' ​​dizede eksik bir alan var ... belki de classList'in bir dizi olması ve dönüşte bir boşlukla birleştirilmesi daha iyi. .. ve 'select' yerine 'user.selected' ile test ediyorsunuz - tiple aynı. –