我在为我的 jQuery 插件发布数据时遇到问题。该插件是 autoform 添加包,其定义如下:
Products.attachSchema(new SimpleSchema({
tooteNimetus: {
type: String,
optional: true,
autoform: {
type: "selectize",
options: function () {
return productList
}
}
我需要定义这个产品列表。
当我将其定义为对象时:
productList = [{label: "AXPK Plus 4G60", value: 2001244}]
,它工作得很好
但是我需要从集合中获取productList,所以我这样定义它:
ProductMap = new Mongo.Collection("productMap");
ProductMap.attachSchema(new SimpleSchema({
label: {
type: String,
label: "Toote nimetus"
},
value: {
type: Number,
label: "Toote kood"
},
miinimumTakistus: {
type: Number,
label: "Toote miinimum takistus",
decimal: true
}
}));
productList = ProductMap.find({}).fetch();
还有我的订阅和发布:在我的/服务器中:
Meteor.publish("productMap", function () {
return ProductMap.find({});
});
lib/router 中的子目录:
Router.map(function () {
this.route('insert', {
path: '/insert',
template: 'insertProduct',
waitOn: function() {
[
Meteor.subscribe('productMap'),
Meteor.subscribe('products')
];
}
});
});
所以问题是,目前它只有在我打开自动发布时才能找到我的 productList。如何正确发布/订阅我的:
productList = ProductMap.find({}).fetch();
当我打开新的私人会话并在我的浏览器窗口中进行刷新之前,当我打开自动发布时,我的插件也可以工作。刷新后它不起作用,我需要打开新的私人窗口。使用硬定义的对象/数组,插件在任何情况下都能很好地工作。