2012-08-17 17 views
14

Durante lo sviluppo vorrei aggiornare i miei modelli manubrio se sono stati salvati dal vivo.Come si aggiornano i modelli in giallo (in tempo reale)?

Ho già un canale websocket che mi avvisa quando un file viene salvato. A quel punto posso forzare una ricarica del modello particolare aggiornando un hash sul tag scriptsrc.

Come posso notificare tutte le viste che utilizzano questo modello che devono essere aggiornate e imporre un aggiornamento?

(Come posso trovarli? Come posso attivare un aggiornamento?)

+0

che dire che interessano un nuovo templateName, come in http: //stackoverflow.com/questions/9999064/ember-js-select-view-template-by-model-type-object-value/10006845#10006845. Potrebbe funzionare per te? –

+0

forse, gli darò uno scatto –

risposta

2

In teoria, si potrebbe fare Ember.View.views.filterProperty('templateName', nameOfUpdatedTemplate).set('template', Ember.TEMPLATES[nameOfUpdatedTemplate]). Questo dovrebbe forzare un re-rendering.

Non l'ho provato, e non so in quali casi limite potresti imbatterti, ma questo sarebbe l'approccio più semplice a cui possa pensare.

+0

lo proverò prima cosa lunedì, grazie! –

+0

no go ... ma ho trovato un trucco, vedere la mia risposta –

7

nota questo funziona per modelli semplici, ma non per quelli che sono resi in prese

ottenere questo corso è stata piuttosto complicata:

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

curiosa di questo - potresti spiegare cosa sta facendo il caricatore di script/ottenere il callback? –

Problemi correlati