2012-08-17 16 views
14

देव के दौरान यदि मैं लाइव सहेजे गए हैं तो मैं अपने हैंडलबार टेम्पलेट को रीफ्रेश करना चाहता हूं।एम्बर (लाइव) में टेम्पलेट रीफ्रेश कैसे करेगा?

मेरे पास पहले से ही एक वेबस्केट चैनल है जो फ़ाइल को सहेजता है जब मुझे सूचित करता है। उस बिंदु पर मैं script टैग src पर हैश अपडेट करके विशेष टेम्पलेट का पुनः लोड कर सकता हूं।

मैं इस टेम्पलेट का उपयोग करने वाले सभी विचारों को कैसे सूचित कर सकता हूं जिन्हें उन्हें ताज़ा करने और ताज़ा करने की आवश्यकता है?

(मैं उन्हें कैसे मिल सकती है? मैं एक ताज़ा कैसे को गति प्रदान करते हैं?)

+0

http में की तरह एक नया TEMPLATENAME को प्रभावित करने, के बारे में क्या: //stackoverflow.com/questions/9999064/ember-js-select-view-template-by-model-type-object-value/10006845#10006845। क्या यह आपके लिए काम कर सकता है? –

+0

संभवतः, इसे एक शॉट –

उत्तर

2

सिद्धांत रूप में, आप Ember.View.views.filterProperty('templateName', nameOfUpdatedTemplate).set('template', Ember.TEMPLATES[nameOfUpdatedTemplate]) कर सकता है। यह फिर से प्रस्तुत करने के लिए मजबूर होना चाहिए।

मैंने यह कोशिश नहीं की है, और यह नहीं पता कि आप किन किनारे के मामलों में भाग सकते हैं, लेकिन यह सबसे आसान तरीका होगा जिसे मैं सोच सकता हूं।

+0

देगा इसे पहली बात सोमवार को धन्यवाद, धन्यवाद! –

+0

कोई नहीं ... लेकिन मुझे एक चाल मिली, मेरा जवाब –

7

टिप्पणी इस सरल टेम्पलेट्स के लिए काम करता है, लेकिन जो कि दुकानों

इस जाने वाले हो रही में गाया जाता है के लिए नहीं बल्कि मुश्किल था:

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

इस बारे में उत्सुकता से देखें - क्या आप यह बता सकते हैं कि स्क्रिप्ट लोडर/कॉलबैक प्राप्त करने के लिए क्या कर रहा है? –

संबंधित मुद्दे