如何将流星简单模式与流星页面一起使用

How can I use Meteor simple schema with meteor-pages

本文关键字:流星 一起 模式 简单      更新时间:2023-09-26

刚开始玩流星,我希望让meteor-simple-schemameteor-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

所以这是一个相当古老的问题,但也许其他人仍在寻找答案。

要将 meteor-pages 分页与 collection2 一起使用,您只需传递 Meteor.Pagination 的集合对象。

例:

var Customers = new Mongo.Collection("customers");
var Schemas = {};
Schemas.Customer = new SimpleSchema({ … });
Customers.attachSchema(Schemas.Customer);
var pages = new Meteor.Pagination(Customers, { … });

你把它改成了新的Meteor.Pages还是Meteor.Pagination?

你能发布架构正在产生什么问题吗?

而不是

    TODOS = new Meteor.Collection('todos');

尝试一下

    TODOS = new Mongo.Collection('todos');

看起来这可能是您可能需要的。

在我看来,

您没有将 Collection2 包添加到您的应用程序中 - 这是定义attachSchema方法的地方。以下命令应可解决此问题。

meteor add aldeed:collection2