Perché nel seguente esempio di base la raccolta restituita all'interno della funzione di rendering è vuota?
Autopublish è abilitato. Dopo il caricamento della pagina di comando
Coll.find().fetch()
chiamata all'interno javascript console ritorna insieme corretto di vociMeteor template.rendered - Perché la raccolta è vuota?
Ecco il codice
t.js
Coll = new Meteor.Collection("coll");
if (Meteor.isClient) {
Template.tpl.rendered = function(){
console.log(Coll.find().fetch()); // <-- This line prints empty array
};
}
if (Meteor.isServer) {
Meteor.startup(function() {
if (Coll.find().count() === 0) {
var f = ["foo","bar"];
for (var i = 0; i < f.length; i++)
Coll.insert({f: f[i]});
}
});
}
E t.html
file di
<head>
<title>test</title>
</head>
<body>
{{> tpl}}
</body>
<template name="tpl">
Test tpl
</template>
È perché la tua raccolta non è ancora stata caricata. 'Template.rendered' è attivato, non significa che la tua collezione è stata caricata. controlla [questo] (http://stackoverflow.com/questions/15129827/) thread. –