2012-04-06 12 views
8

मैं अपने हैंडलबार टेम्पलेट्स के कुछ हिस्सों में jQuery प्रभाव (fadeIn, fadeOut, आदि ...) को शामिल करना चाहता हूं। मुझे लगता है कि यह एक अलग दृश्य के साथ कम से कम पूरा किया जा सकता है जिसमें दृश्य की isVisible संपत्ति प्रारंभ में झूठी है और इसकी didInsertElement विधि this.$().fadeIn() जैसी कुछ कहती है।एम्बर व्यू, हैंडलबार और jQuery प्रभाव

हालांकि, मैं क्या करना चाहते हैं एक jQuery प्रभाव जोड़ है सिर्फ एक को देखने के एक छोटे से हिस्से के लिए - सामग्री का छोटा ब्लॉक है कि शुरू में एक {{#if}} बयान है कि false और का मूल्यांकन से छिपा प्रदर्शित करने में प्रयोजनों के लिए कहते हैं बाद में उपयोगकर्ता प्रतिक्रिया के माध्यम से true पर टॉगल हो जाता है। निम्नलिखित http://jsfiddle.net/YeGbF/2/ देखें।

कोई सुझाव?

+3

बस एक संकेत: आप 'सेट (' x ',! Get (' x ') के बजाय 'टॉगलप्रॉपर्टी' का उपयोग कर सकते हैं ...' –

+0

मैं इसकी सराहना करता हूं। विश्वास नहीं कर सकता मैंने कभी नहीं देखा कि Ember.Observable पर। – mike

+0

'एम्बर। ऑब्सर्जेबल' पर 'वृद्धि प्रॉपर्टी' और 'कमी प्रॉपर्टी' भी हैं, http://code418.com/blog/2012/03/31/useful-observable-functions/ – pangratz

उत्तर

14

आप सामान जो दिखाया में फीका किया जाएगा के लिए एक दृश्य के इस्तेमाल कर सकते हैं, को देखने के http://jsfiddle.net/pangratz666/dJMwC/

Handlebars:

{{#view App.FadeInView contentBinding="this"}} 
    <div>{{content.someAdditionalDetail}}</div> 
{{/view}} 

जावास्क्रिप्ट:

App.FadeInView = Ember.View.extend({ 
    didInsertElement: function(){ 
     this.$().hide().show('slow'); 
    } 
}); 

इसके अलावा एक है Deferring removal of a view so it can be animated

पर देखें
+0

धन्यवाद। यह काम। – mike

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