如何更改架构密钥?

时间:2014-12-26 01:18:32

标签: meteor meteor-autoform

我有一个下面定义的架构,如何通过流星模板更改预定义的架构键(summary:键)?

Schemas.Books = new SimpleSchema(
    {
       summary: {
               type: String
                }
    }
);

例如,我想通过路由器或用户输入定义的会话变量来更改此密钥。

2 个答案:

答案 0 :(得分:0)

不确定,试试这个

如果你的架构是这样的

Books = new SimpleSchema(
    {
       summary: {
               type: String
                }
    }
);

然后是tempalte助手,

    Books._schema.summary.type = function() { 

      return Session.get("typeValue");
   };

在我的项目中,我有这样的架构

RegisterSchema = new SimpleSchema({
    name: {
        type: String
    },
    email: {
        type: String,
        regEx: SimpleSchema.RegEx.Email
    },
    password: {
        type: String,
        label: "Password",
        min: 8
    },
    confirmPassword: {
        type: String,
        label: "Confirm Password",
        min: 8,
        custom: function () {
            if (this.value !== this.field('password').value) {
                return "passwordMismatch";
            }
        }
    }
});

我正在动态设置电子邮件的可选值,如

RegisterSchema._schema.email.optional = function() { return true };

这对我有用。

全部最好

答案 1 :(得分:0)

这不是我想做的事情,但我学会了一个新技巧:)

我想像这样更改我上面描述的架构键。

Books = new SimpleSchema(
    {
       bookName: {
               type: String
                }
    }
);

使用summary:

更改bookName:

实际上我想根据用户信息(userId,userName等)动态定义架构键。