0
自從我使用Meteor或涉獵UI世界以來,這已經很長時間了,所以如果這是一個糟糕的問題,請原諒我。流星JS - 客戶端集合似乎是空的
API/main.js:
export const Nodes = new Meteor.Collection("nodes");
export const Links = new Meteor.Collection("links");
服務器/ main.js
import { Links, Nodes } from '../api/main.js';
Meteor.startup(() => {
// code to run on server at startup
}
Meteor.methods({
traverseDocument: function traverseDocument(documentKey) {
// ... do stuff ...
Links.insert(data.links);
Nodes.insert(data.nodes);
return data;
}
}
客戶端/ main.js
import { Links, Nodes } from '../api/main.js';
import './main.html';
Meteor.startup(function() {
// Fetch data via a call
Meteor.call("traverseDocument", 'NTD000000228506', function (error, results) {});
});
Template.viz.rendered = function() {
console.log(Nodes.find()); // <-- LocalConnection.Cursor()
console.log(Nodes.find().fetch()); // <-- This is empty []
console.log(Nodes._collection._docs._map); // <-- This returns Object{}
}
我已經試過: 1.發佈/訂閱 2.我試了一個幫手功能 3.我已經把Meteor.C所有()進入客戶端啓動功能
所以這現在似乎更接近工作。
原來的問題現在改變爲 - 爲什麼find()。fetch()返回一個空數組?
也許我應該發佈一個新問題並將其標記爲已修復?
我嗅到計時問題。在你最後的代碼示例中,'console.log()'在Meteor.call()後執行* immediate *。這意味着它在函數(error,result){}'回調甚至會運行很久之前就會執行。嘗試將日誌記錄移入回調。 – Tomalak
感謝您的建議。它看起來像是一個計時問題,所以我嘗試將Meteor.call()移動到onCreated事件中,但仍然沒有運氣。我也嘗試訂閱和其他的東西,但仍然沒有喜悅。 – Exie
你是否在服務器上有Meteor.publish()'你的兩個集合? –