Aka*_*ash 8 javascript ember.js
我在我的应用程序中使用Ember.js,但有一点我更新了视图的上下文(控制器)的属性,但是在更新之后有一个解析器(MathJax)查看dom以获取要更新的字段进行解析把它变成数学.然而,即使更新正在进行,它也会在mathjax查找更新之后发生.在我告诉mathjax解析html之前,我需要做的是强制ember更新视图或等待ember更新.有没有办法实现这个目标?
Mik*_*tti 17
这是一个相当常见的用例.要指定在属性的更改已经传播之后应该执行的代码,请使用观察者.Ember在成功传播更改后触发观察者.例如:
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')
});
Run Code Online (Sandbox Code Playgroud)
请参阅Ember.run的Ember Managing-Asynchrony Guide和API docs:http://emberjs.com/guides/understanding-ember/managing-asynchrony/ http://emberjs.com/api/classes/Ember.run.html #method_next
| 归档时间: |
|
| 查看次数: |
6342 次 |
| 最近记录: |