Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Ember.js中手动更新视图?_Javascript_Ember.js - Fatal编程技术网

Javascript 如何在Ember.js中手动更新视图?

Javascript 如何在Ember.js中手动更新视图?,javascript,ember.js,Javascript,Ember.js,我在我的应用程序中使用了Ember.js,但有一点是我更新了视图上下文(控制器)的一个属性,但在更新之后,有一个解析器(MathJax),它查看dom中更新的字段以将其解析为数学。然而,即使更新正在进行,它也会在mathjax查找更新之后发生。我需要做的是在告诉mathjax解析html之前,强制ember更新视图或等待ember更新。有没有办法做到这一点?这是一个相当常见的用例。要指定在属性更改完成后应执行的代码,请使用观察者。Ember在成功传播更改后触发观察者。例如: App.MathVi

我在我的应用程序中使用了Ember.js,但有一点是我更新了视图上下文(控制器)的一个属性,但在更新之后,有一个解析器(MathJax),它查看dom中更新的字段以将其解析为数学。然而,即使更新正在进行,它也会在mathjax查找更新之后发生。我需要做的是在告诉mathjax解析html之前,强制ember更新视图或等待ember更新。有没有办法做到这一点?

这是一个相当常见的用例。要指定在属性更改完成后应执行的代码,请使用观察者。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')
});
App.MathView=Ember.View.extend({
控制器:空,
模板:Ember.handlebar.compile(“{myProperty}”),
MyPropertyIDChange:函数(){
//从此处,控制器值已更改,但DOM尚未更新
next(这个,函数(){
//此代码将在更改传播到DOM后运行
//在这里调用MathJax解析器
//如果需要,您可以通过此访问视图的DOM元素。$()
警报(“新属性值在dom中:+this.$().text());
});
}.observes('controller.myProperty'))
});
请参阅《Ember管理异步指南》和Ember.run的API文档:
http://emberjs.com/api/classes/Ember.run.html#method_next

现在视图消失了。我现在应该在哪里检查属性更改?