Javascript 如何在ember(live)中刷新模板?

Javascript 如何在ember(live)中刷新模板?,javascript,ember.js,Javascript,Ember.js,在开发过程中,我想刷新我的把手模板,如果他们是活存 我已经有一个websocket频道,当文件保存时会通知我。此时,我可以通过更新script标记src上的散列来强制重新加载特定模板 如何通知使用此模板的所有视图需要刷新并强制刷新 (如何找到它们?如何触发刷新?理论上,您可以执行Ember.View.views.filterProperty('templateName',nameOfUpdatedTemplate.).set('template',Ember.TEMPLATES[nameOfUp

在开发过程中,我想刷新我的把手模板,如果他们是活存

我已经有一个websocket频道,当文件保存时会通知我。此时,我可以通过更新
script
标记
src
上的散列来强制重新加载特定模板

如何通知使用此模板的所有视图需要刷新并强制刷新


(如何找到它们?如何触发刷新?

理论上,您可以执行
Ember.View.views.filterProperty('templateName',nameOfUpdatedTemplate.).set('template',Ember.TEMPLATES[nameOfUpdatedTemplate])
。这将强制重新渲染


我没有尝试过这种方法,也不知道您可能会遇到什么边缘情况,但这是我能想到的最简单的方法。

注意这适用于简单模板,但不适用于渲染到输出中的模板

让这一切继续下去相当棘手:

var js = "template.js";
var templateName = "template";

Ember.TEMPLATES["empty"] = Handlebars.compile("")

// script loaders are the simplest way of getting a callback 
$LAB.script(js).wait(function(){
  $.each(Ember.View.views,function(){
     if(this.get('templateName')==templateName){
       this.set('templateName','empty');
       this.rerender();
       this.set('templateName',templateName);
       this.rerender();
     }
  });
})

影响一个新的templateName怎么样,比如。它能为您工作吗?可能会给它一个关于这一点的提示-您能解释一下脚本加载程序/获取回调正在做什么吗?