刚刚开始使用Meteor,我希望meteor-simple-schema
能够使用meteor-pages
原理很简单,我只是在玩他们提供的示例todos
应用程序,并希望添加无限滚动来加载更多待办事项。但我不能让两者兼得。
以下是我的默认meteor-simple-schema
Todos = new Meteor.Collection('todos', {});
Schema = {};
Todos.attachSchema(new SimpleSchema({
text: {
type: String,
label: "Name",
max: 200,
min: 2
},
createdAt: {
type: Date,
label: "Created",
optional: false
},
creatorId: {
type: String,
label: "Creator",
optional: false
},
done: {
type: Boolean,
defaultValue: false,
label: "Done?",
optional: true
}
}));
然后我将new Meteor.Collection('todos')
切换为new Meteor.Pages('todos')
甚至new Meteor.Pagination('todos')
但是架构会产生错误。我怎样才能同时工作?
以下是错误:
W20150317-22:47:23.197(1)? (STDERR) ~/.meteor/packages/meteor-tool/.1.0.41.azxhr5++os.osx.x86_64+web.browser+web.cordova/meteor-tool-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:173
W20150317-22:47:23.197(1)? (STDERR) throw(ex);
W20150317-22:47:23.197(1)? (STDERR) ^
W20150317-22:47:23.199(1)? (STDERR) TypeError: Object #<Pages> has no method 'attachSchema'
W20150317-22:47:23.200(1)? (STDERR) at app/collections/todos.js:25:7
W20150317-22:47:23.200(1)? (STDERR) at app/collections/todos.js:60:3
答案 0 :(得分:1)
所以这是一个很老的问题,但也许其他人仍在寻找答案。
要使用集合2的meteor-pages分页,你只需要传递Meteor.Pagination的集合对象。
示例:
var Customers = new Mongo.Collection("customers");
var Schemas = {};
Schemas.Customer = new SimpleSchema({ … });
Customers.attachSchema(Schemas.Customer);
var pages = new Meteor.Pagination(Customers, { … });
答案 1 :(得分:0)
您是否将其更改为新的Meteor.Pages或Meteor.Pagination?
您可以发布架构正在创建的问题吗?
而不是
TODOS = new Meteor.Collection('todos');
尝试
TODOS = new Mongo.Collection('todos');
看起来好像你可能需要它。
答案 2 :(得分:0)
在我看来,您没有将Collection2软件包添加到您的应用中 - 这是定义attachSchema
方法的地方。以下命令应解决此问题。
meteor add aldeed:collection2