I metodi Tracker non appartengono esattamente al nucleo della funzionalità di Meteor, sono usati raramente in tutorial e libri per principianti (e se sono così non sono spiegati molto bene), e di conseguenza sono considerati molto più "spaventosi" rispetto alla maggior parte del resto del framework.In inglese semplice, cosa fa Tracker.autorun?
Io, per esempio, non sono mai riuscito a scambiare Tracker.autorun
in un mio progetto come non sembra mai fare ciò che ci si aspetta da esso. Questo è ciò che i documenti dicono che fa:
Eseguire una funzione ora ed eseguire di nuovo in un secondo momento ogni volta che le sue dipendenze cambiamento.
Per me questo suona come un modo di rendere fonti non reazionari reazionaria, ma poi si arriva agli esempi, il primo dei quali si presenta così:
Tracker.autorun(function() {
var oldest = _.max(Monkeys.find().fetch(), function (monkey) {
return monkey.age;
});
if (oldest)
Session.set("oldest", oldest.name);
});
Come funziona esattamente questo diverso da non usando Tracker.autorun
? I cursori sono già una fonte reazionaria, e per rendere le cose più confuse il prossimo esempio si occupa di un'altra fonte reazionaria: Sessioni.
Vuol Tracker.autorun
funzionano solo con le fonti reazionari, e in caso affermativo qual è il vantaggio di utilizzare al loro interno un Tracker
? Rendendoli doppiamente reazionari?
Grande risposta, si risolve un altro problema che stavo avendo dove nel onRendered, nel Tracker.autorun, non ho potuto ottenere l'accesso al modello utilizzando this.find ('...'). Usando this.autorun e.bind (questo) sono riuscito a far funzionare le cose. Domanda, è il .bind (questo) necessario per fare un this.find ('')? E qual è lo scopo di questo? – Aaron
Beh, questa sarebbe un'altra domanda nel suo insieme, date un'occhiata a: http://javascriptissexy.com/javascript-apply-call-and-bind-methods-are-essential-for-javascript-professionals/ Meteor 1.2 sarà introdurre il supporto ES2015 e le funzioni Arrow, rendendo questo uso specifico del binding irrilevante. https://github.com/lukehoban/es6features#arrows – saimeunt