Javascript 如何在ember(live)中刷新模板?
在开发过程中,我想刷新我的把手模板,如果他们是活存 我已经有一个websocket频道,当文件保存时会通知我。此时,我可以通过更新Javascript 如何在ember(live)中刷新模板?,javascript,ember.js,Javascript,Ember.js,在开发过程中,我想刷新我的把手模板,如果他们是活存 我已经有一个websocket频道,当文件保存时会通知我。此时,我可以通过更新script标记src上的散列来强制重新加载特定模板 如何通知使用此模板的所有视图需要刷新并强制刷新 (如何找到它们?如何触发刷新?理论上,您可以执行Ember.View.views.filterProperty('templateName',nameOfUpdatedTemplate.).set('template',Ember.TEMPLATES[nameOfUp
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怎么样,比如。它能为您工作吗?可能会给它一个关于这一点的提示-您能解释一下脚本加载程序/获取回调正在做什么吗?