在开发期间,如果要实时保存我的车把模板,我想刷新它们。

我已经有一个websocket channel ,当保存文件时会通知我。那时,我可以通过更新script标记src上的哈希值来强制重新加载特定模板。

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

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

最佳答案

注意此功能适用于简单的模板,但不适用于渲染到网点的模板

进行此操作相当棘手:

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();
     }
  });
})

09-17 21:09