0

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

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

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

4

2 回答 2

0

不确定,试试这个

如果您的架构是这样的

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

然后在模板助手中,

    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 };

这对我有用。

最好的

于 2014-12-26T08:29:45.337 回答
0

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

我想像这样更改上面描述的模式键。

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

改变summary:_bookName:

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

于 2014-12-26T17:36:03.380 回答