我正在将 Collection2 和 Autoform 用于应用程序。
我有一个select
选项从一个状态中拉出collection
地址。
我的模式是在 isServer/isClient 块之外声明的。
var Schemas = {};
Schemas.addresses = new SimpleSchema({
state_id: {
type: Meteor.ObjectID,
autoform: {
options: function () {
console.log(states.find().fetch());
return states.find().map(function (c) {
return {label: c.name, value: c._id};
});
}
}
}
});
people = new Meteor.Collection("people");
Schemas.people = new SimpleSchema({
address:{
type: [Schemas.addresses],
optional: true
}
});
people.attachSchema(Schemas.people);
states = new Meteor.Collection("states");
在 isClient 块中:
Meteor.subscribe("states");
在 isServer 块中:
Meteor.startup(function () {
Meteor.publish("states", function () {
return states.find();
});
});
最后是我的模板:
<template name="createPerson">
{{> quickForm collection="people" type="insert"}}
</template>
你会看到我什至console.log
在模式 autoform 选项函数调用中添加了一个,它返回一个大的 empty []
。如果我将它console.log
放在模式声明之外或 isClient/isServer 块中,我会得到预期的状态数组。
我错过了什么会导致这个集合返回空?
谢谢