2012-04-06 9 views
8

Vorrei incorporare effetti jQuery (fadeIn, fadeOut, ecc.) In parti dei miei modelli manubrio. Penso che questo possa più o meno essere realizzato con una vista separata in cui la proprietà della vista isVisible è inizialmente falsa e il suo metodo didInsertElement chiama qualcosa come this.$().fadeIn().Ember Views, Handlebars e jQuery Effects

Tuttavia, quello che mi piacerebbe fare è aggiungere un effetto jQuery per solo una piccola parte di una visione - dire ai fini della visualizzazione di un piccolo blocco di contenuto che è inizialmente nascosto da un {{#if}} dichiarazione che restituisce false e successivamente attraverso il feedback degli utenti si passa a true. Vedere il seguente http://jsfiddle.net/YeGbF/2/.

Qualche suggerimento?

+3

Solo un suggerimento: si può usare 'toggleProperty' invece di' set ('x',! Get ('x')) '... –

+0

Lo apprezzo. Non posso credere di non averlo mai notato prima su Ember. Osservabile. – mike

+0

Esistono anche 'incrementProperty' e' decrementProperty' su 'Ember.Observable', vedi http://code418.com/blog/2012/03/31/useful-observable-functions/ – pangratz

risposta

14

Si potrebbe utilizzare una vista per la roba, che deve essere indicato sbiadito in, vedere http://jsfiddle.net/pangratz666/dJMwC/

Handlebars:

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

JavaScript:

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

hanno anche un guarda Deferring removal of a view so it can be animated

+0

Grazie. Questo funziona. – mike