在開發期間,我想刷新我的車把模板,如果他們現場保存。如何刷新燼(活)中的模板?
我已經有一個websocket通道,當文件保存時會通知我。此時,我可以通過更新script
標記src
上的散列來強制重新加載特定模板。
如何通知所有使用此模板的視圖,以便他們需要刷新並強制刷新?
(我如何才能找到他們?我如何觸發刷新?)
在開發期間,我想刷新我的車把模板,如果他們現場保存。如何刷新燼(活)中的模板?
我已經有一個websocket通道,當文件保存時會通知我。此時,我可以通過更新script
標記src
上的散列來強制重新加載特定模板。
如何通知所有使用此模板的視圖,以便他們需要刷新並強制刷新?
(我如何才能找到他們?我如何觸發刷新?)
從理論上講,你可以做Ember.View.views.filterProperty('templateName', nameOfUpdatedTemplate).set('template', Ember.TEMPLATES[nameOfUpdatedTemplate])
。這應該強制重新渲染。
我還沒有試過這個,也不知道你會遇到什麼樣的邊緣情況,但這是我能想到的最簡單的方法。
星期一會嘗試它的第一件事,謝謝! – 2012-08-18 06:14:23
沒有去...但我確實找到了一招,看到我的回答 – 2012-08-29 08:02:39
注這適用於簡單的模板,而不是被渲染到網點
獲取這是怎麼回事的人是相當棘手:
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();
}
});
})
對此很好奇 - 你能解釋一下腳本加載器/獲取回調是幹什麼的嗎? – 2013-05-15 07:18:12
什麼影響新TEMPLATENAME,像HTTP: //stackoverflow.com/questions/9999064/ember-js-select-view-template-by-model-type-object-value/10006845#10006845。它可以爲你工作嗎? – 2012-08-17 06:47:41
可能,會給它一個 – 2012-08-17 07:04:09