potrei mancare qualcosa, ma sembra che la "magia" di Meteor ruota dati intorno vincolanti alle elementi DOM e testo aggiornamento e frammenti HTML tramite manubrio: http://docs.meteor.com/#reactivityMeteor: aggiornamento automatico della tela con i dati sottoscritti?
Questo è grande, tuttavia, quando si cerca di scrivere un'applicazione di meteoriti che visualizza i dati in tempo reale in un <canvas> elemento, non riesco a capire il "modo di meteore" per aggiornare la mia tela in cui le modifiche dei dati in tempo reale, dal momento che la tela è popolata tramite il codice JS come:
var g = canvas.getContext('2d')
g.fillRect(x, y, w, h)
e non il testo di backup dei dati nel modello HTML.
Sto provando a disegnare sulla tela utilizzando i dati di un Meteor.Collection.
Il mio unico pensiero è stato quello di incorporare tela-disegno di codice JS nel template HTML in un tag script popolato da manubrio Vars, ma questo sembra sbagliato dal momento che gli eventi di meteore e il codice di associazione dati è già JS lato client.
C'è un modo per ascoltare le modifiche dei dati in tempo reale, che attivano il disegno sulla tela tramite JS anziché elementi/testo HTML?
Per favore fatemi sapere se posso chiarire la questione in qualche modo
Update: risposta Tom seguito mi ha fatto notare Meteor.deps, che sembrano per consentire l'esecuzione di codice arbitrario in un contesto reattivo: http://docs.meteor.com/#on_invalidate
Proverò questo e aggiorno qui se funziona.
I' Non sono sicuro se questo è ciò che intendevi per "incorporato ... in un tag script". attualmente sto facendo qualcosa di simile a mettere {{drawCanvas}} nel modello che contiene la mia tela, e faccio tutto il disegno all'interno della funzione che fa parte di Template.canvas.helper chiamato "drawCanvas", questa funzione non restituisce nulla, quindi non ottiene nulla reso, ma viene eseguito in modo che aggiorni la tela. E 'quello che hai già provato? Template.name.helper è reattivo automaticamente, purché dipenda da un ReactiveDict o da qualche modello che aggiornerà di conseguenza quando viene modificato –
Ciò che intendevo per quel commento era generare dinamicamente il codice JS come una stringa nel modello (che è ovviamente strano). La mia risposta di seguito sembrava essere il modo "corretto" con Meteor – 7zark7
che è davvero assurdo! Ma il mio metodo sembra a posto? L'idea è semplicemente usando un {{drawCanvas}} invisibile che non fa nulla, che viene rieseguito ogni volta che alcuni dati reattivi cambiano (quindi ridisegnando la tela) –