Uygulamamda Ember.js kullanıyorum, ancak görünümün bağlamının (denetleyici) bir özelliğini güncelleştirdiğim ancak güncelleştirmenin hemen ardından güncellenmiş alanlar için dom'a bakan bir ayrıştırıcı (MathJax) bulunduğum bir nokta var. onu matematiğe ayırmak. Ancak güncelleme gerçekleşiyor olsa da, mathjax güncellemeyi aradıktan sonra gerçekleşir. Yapmam gereken şey, görünümü güncellemek için kepçeyi zorlamak ya da html'yi ayrıştırmak için mathjax'ı anlatmadan önce güncellemeyi beklemek. bunu arşivlemenin bir yolu var mı?Ember.js'de görünümü manuel olarak güncelleme nasıl yapılır?
8
A
cevap
17
Bu oldukça yaygın bir kullanım vakasıdır. Bir mülkün değiştikten sonra yürütülmesi gereken kodu belirtmek için bir gözlemci kullanın. Ember, değişimi başarılı bir şekilde yaydıktan sonra gözlemcileri tetikler. Örneğin:
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')
});
Ember.run için Kor Yönetme-Asenkron Kılavuzu ve API docs bakınız: http://emberjs.com/guides/understanding-ember/managing-asynchrony/ http://emberjs.com/api/classes/Ember.run.html#method_next
İlgili konular
- 1. Öykünüm görünümünü manuel olarak açın
- 2. Knockout.js: manuel olarak hesaplanan hesaplama
- 3. DataTemplate'i manuel olarak başlat?
- 4. Kılavuz Görünümü Güncelleme Bir öğe (dosya) silindiğinde dinamik olarak
- 5. Faces Bağlamını manuel olarak oluşturma
- 6. Zeniteyi homebrew'a nasıl manuel olarak kurabilirim?
- 7. Yay doğrulaması manuel olarak nasıl tetiklenir?
- 8. Devise ile kullanıcı manuel olarak nasıl oluşturulur
- 9. Meteor içinde manuel olarak nasıl oturum açılır
- 10. Bir onchange olayını manuel olarak nasıl tetikleyebilirim?
- 11. Clang AST nasıl manuel olarak taşınır?
- 12. JAR'ı maven merkezine manuel olarak nasıl yayınlarım?
- 13. jQuery Doğrulama'yı Manuel Olarak Tetikle?
- 14. Temel FullCalendar özel görünümü nasıl yapılır
- 15. Django'da Kullanıcılar Ayrıntı Görünümü Nasıl Yapılır?
- 16. dokunmatik olayı görünümü boyutlandırılabilir nasıl yapılır
- 17. Onay kutusu ile Liste Görünümü nasıl yapılır
- 18. Android'de bir OAUTH2 auth akışını manuel olarak uygulama
- 19. Rails'de turbolinks ile manuel olarak gezinebilir miyim?
- 20. Bir TFS Ekip Oluşturmayı Manuel Olarak Tetikle
- 21. ffmpeg m3u8 ve segmentleri manuel olarak oluşturur
- 22. Bir WPF projesinin manuel olarak yapılması
- 23. Güven aralıkları ggplot2 ile manuel olarak gölgelendirme
- 24. Kimlik doğrulaması için pasaportu manuel olarak arayın
- 25. v8 | çöp toplayıcısını manuel olarak başlat
- 26. Pankreas indeksini manuel olarak yeniden oluşturma
- 27. Django'da sinyalleri manuel olarak tetikleyebilir miyim?
- 28. Linux: Programların manuel olarak nereye yükleneceği/açılacağı
- 29. Karma-jasmine sürümünün manuel olarak değiştirilmesi
- 30. Dinamik olarak eklenen altyazı görünümü ve görüntü görünümü nasıl hedeflenir?
Teşekkürler, ihtiyaç duyduğum şey Em.run.next idi (this, function() {... – Akash
Görünüm artık yok. Şimdi bir mülk değişimini nerede kontrol etmeliyim? – Cameron