【问题标题】:How can I use Meteor simple schema with meteor-pages如何将 Meteor 简单模式与流星页面一起使用
【发布时间】:2015-05-20 04:24:24
【问题描述】:

刚开始玩 Meteor,我希望将 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

【问题讨论】:

    标签: javascript node.js mongodb meteor pagination


    【解决方案1】:

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

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

    示例:

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

    【讨论】:

      【解决方案2】:

      您是否将其更改为新的 Meteor.Pages 或 Meteor.Pagination?

      您能发布架构造成的问题吗?

      而不是

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

      尝试一下

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

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

      【讨论】:

      • 用错误日志更新了主要问题。为了回答你的第一个问题,我尝试了两个,它给出了同样的错误。谢谢!
      【解决方案3】:

      在我看来,您没有将 Collection2 包添加到您的应用程序中 - 这是定义 attachSchema 方法的地方。下面的命令应该可以解决这个问题。

      meteor add aldeed:collection2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-02
        • 1970-01-01
        相关资源
        最近更新 更多