2015-06-01 9 views
7

पॉलिमर 0.5 में टोकनलिस्ट स्टाइल के साथ क्या हुआ, कोई ऑब्जेक्ट मानों के आधार पर सशर्त रूप से कक्षाओं को लागू करने के लिए तत्व तत्व विशेषता पर अभिव्यक्तियों के साथ टोकनलिस्ट फ़िल्टर का उपयोग कर सकता है। V1.0 प्रतिस्थापन या समकक्ष तकनीक क्या है? मुझे पूरी तरह से कोड में इसे संभालने से परे विषय पर कुछ भी नहीं मिल रहा है।पॉलिमर 1.0

+1

[परिकलित बाइंडिंग] (https://www.polymer-project.org/1.0/docs/devguide/data: आप एलान के तौर पर अपने तत्व में वर्ग का नाम जोड़ने की जरूरत है, तो आप कुछ इस तरह कर सकता है -binding.html # एनोटेटेड-गणना) –

उत्तर

3

पॉलिमर 1.0 ने प्रदर्शन लाभ के पक्ष में काफी कटौती की, अभिव्यक्ति उनमें से एक है।

0.5 प्रलेखन से उदाहरण का उपयोग:

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

आप फिर से लिख सकता है 1.0 के लिए तो जैसे:

<div class$="{{getClassList(user.selected, user.type)}}"> 
फिर अपने तत्व के js में

:

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

मेक सुनिश्चित करें कि कोई भी गुण जो परिवर्तन के अधीन हैं (और जिसके परिणामस्वरूप मूल्य निर्भर करता है) को सर्वोपरि के रूप में पारित किया जाता है समारोह में आरएस। यदि इन गुणों को अद्यतन किया गया है, तो बहुलक मूल्य की पुन: गणना करेगा। यह भी सुनिश्चित करें कि फ़ंक्शन में पास की गई प्रत्येक संपत्ति को किसी भी तरीके से प्रारंभ किया गया है - यदि कोई तर्क undefined है तो पॉलिमर संपत्ति की गणना नहीं करेगा।

के बारे में पता होना करने के लिए एक और बात है कि {{}} के किसी भी घटना, पूरे विशेषता या पाठ्य सामग्री में समा जाने चाहिए ताकि आप class="foo {{bar}}" तरह बातें नहीं हो सकता है।

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

मुझे लगता है कि उस 'बड़ी' स्ट्रिंग में एक जगह गुम है ... शायद क्लासलिस्ट एक सरणी हो, और वापसी पर एक स्थान के साथ इसमें शामिल हो। .. और आप बस 'चयनित' के बजाय 'user.selected' के खिलाफ परीक्षण कर रहे हैं - प्रकार के साथ ही। –

संबंधित मुद्दे