【问题标题】:How to change a schema key?如何更改架构键?
【发布时间】:2015-02-23 11:06:02
【问题描述】:

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

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

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

【问题讨论】:

    标签: meteor meteor-autoform


    【解决方案1】:

    不确定,试试这个

    如果你的架构是这样的

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

    这对我有用。

    一切都好

    【讨论】:

      【解决方案2】:

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

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

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

      summary: 更改为bookName:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-14
        • 2017-02-21
        • 1970-01-01
        • 2011-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多