2
我試圖獲取一個集合中有一個條目外取:流星客戶端未定義幫手
客戶端/視圖/ home.js:
criticalCrewNumber = ConfigValues.find({
name: 'criticalCrewNumber'
}).fetch()[0].value;
但我發現了錯誤:
Uncaught TypeError: Cannot read property 'value' of undefined
如果我運行在瀏覽器控制檯的代碼,所期望的值返回一個字符串。
我嘗試了各種各樣的東西,例如使用findOne
;將代碼放在應用程序的其他地方;使用鐵路路由器waitOn
訂閱來,等等。到目前爲止,每次嘗試失敗,因爲我最終undefined
。
這裏的收集是如何定義,發佈和訂閱到:
的lib /配置/ admin_config.js:
ConfigValues = new Mongo.Collection("configValues");
ConfigValues.attachSchema(new SimpleSchema({
name: {
type: String,
label: "Name",
max: 200
},
value: {
type: String,
label: "Value",
max: 200
}
}));
兩/收藏/ eventsCollection.js:
if (Meteor.isClient) {
Meteor.subscribe('events');
Meteor.subscribe('config');
};
server/lib/collections.js
``` Meteor.publish('events',function(){ return Events.find(); }); ('config',function(){ return ConfigValues.find(); }); ```
有誰知道發生了什麼事?謝謝。
這是流星,非常常見的問題。你能說更多關於被調用的地方嗎?例如它是在onCreated中,還是隻在文件範圍? –
在調用'find'時,Minimongo中沒有數據 - 數據庫的本地副本 - 這就是爲什麼'.find(...)。fetch()'返回空數組的原因。當您在控制檯中運行此行時,訂閱已準備好並且數據已經可用。 –
發佈函數是什麼樣的? – Ivan