Sto usando Ember.js nella mia applicazione, ma c'è un punto in cui aggiorno una proprietà del contesto della vista (controller) ma subito dopo l'aggiornamento c'è un parser (MathJax) che guarda la dom per i campi aggiornati per analizzarlo in matematica. Tuttavia, anche se l'aggiornamento è in corso, succede dopo che mathjax cerca l'aggiornamento. Quello che devo fare è forzare ember ad aggiornare la vista o aspettare che ember si aggiorni prima di dire a mathjax di analizzare l'html. C'è un modo per ottenere questo?Come aggiornare la visualizzazione manualmente in Ember.js?
8
A
risposta
17
Questo è un caso d'uso abbastanza comune. Per specificare il codice che deve essere eseguito dopo la propagazione delle modifiche di una proprietà, utilizzare un osservatore. Ember innesca gli osservatori dopo aver propagato con successo la modifica. Per esempio:
App.MathView = Ember.View.extend({
controller: null,
template: Ember.Handlebars.compile("<div>{{myProperty}}</div>"),
myPropertyDidChange: function() {
// From here the controller value is changed but DOM has not been updated
Ember.run.next(this, function() {
// This code will run when after changes have propagated to the DOM
// Call MathJax parser here
// If needed you can access the view's DOM element via this.$()
alert("New property value is in dom: "+ this.$().text());
});
}.observes('controller.myProperty')
});
Vedi le docs Ember Managing-Asynchrony Guida e API per Ember.run: http://emberjs.com/guides/understanding-ember/managing-asynchrony/ http://emberjs.com/api/classes/Ember.run.html#method_next
Problemi correlati
- 1. Attivare manualmente la modifica delle proprietà in ember.js
- 2. Come aggiornare manualmente la vista AngularJS usando la sintassi ControllerAs?
- 3. Ember.js: passaggio del modello in visualizzazione
- 4. RxJS: Come posso aggiornare "manualmente" un Osservabile?
- 5. Come posso aggiornare Maven Index manualmente?
- 6. È possibile aggiornare ModelState.IsValid manualmente?
- 7. Ember.js: Controlla se l'elemento di visualizzazione è inserito in DOM
- 8. Come aggiornare manualmente il browser Android con l'ultimo (notturno) webkit?
- 9. Come aggiornare la tela
- 10. iOS - Come aggiornare/aggiornare la proprietà transitoria di Core Data?
- 11. Impossibile aggiornare textarea con javascript dopo averlo scritto manualmente
- 12. Ember.js supporta il caricamento di modelli di visualizzazione file esterni?
- 13. Come aggiornare il contenuto di un ArrayController dal valore selezionato di un altro ArrayController in Ember.js
- 14. Progetti di libreria Android e dover aggiornare manualmente
- 15. Android: ListFragment: come aggiornare la lista
- 16. Aggiornare un UpdatePanel manualmente utilizzando JavaScript o jQuery
- 17. Come posso eseguire il binding a una visualizzazione di re-rendering in Ember.js?
- 18. Ember.js come funziona reopenClass?
- 19. come inviare la richiesta di posta con ajax in ember.js?
- 20. Come aggiornare immediatamente la vista immagine
- 21. Ember.js - Visualizzazione modale di rendering con URL e visualizzazione padre ancora visualizzata
- 22. JSON visualizzato al posto dell'HTML per la visualizzazione delle rotaie usando ember.js
- 23. Come aggiornare la directory in git
- 24. OpenTok - Come pubblicare/annullare la pubblicazione manualmente?
- 25. Test unitario in Ember.js
- 26. Come attivare manualmente la convalida della molla?
- 27. serializzatore JMS come gestire manualmente la serializzazione?
- 28. Più router in ember.js?
- 29. Come aggiornare la piattaforma Haskell
- 30. ember.js - qual è il modello di controllo/visualizzazione corretto per la creazione di un nuovo modello
Grazie, quello di cui avevo bisogno era Em.run.next (this, function() {... – Akash
Ora la vista è scomparsa. Dove devo controllare un cambio di proprietà ora? – Cameron