Как изменить ключ схемы?

У меня есть схема, определенная ниже, и как я могу изменить предопределенный ключ схемы (ключ summary:) с помощью шаблона метеора?

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

Например, я хочу изменить этот ключ с помощью переменной сеанса, которая была определена маршрутизатором, или с помощью пользовательского ввода.


person Umut Gunebakan    schedule 26.12.2014    source источник


Ответы (2)


Не уверен, попробуйте это

Если у вас такая схема

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

это сработало для меня.

Всего наилучшего

person Sasikanth    schedule 26.12.2014

Это не то, что я пытаюсь сделать, но я научился новому трюку :)

Я хочу изменить ключ схемы, который я описал выше, вот так.

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

Замена summary: на bookName:

На самом деле я хочу динамически определять ключи схемы в отношении информации о пользователе (userId, userName и т. д.).

person Umut Gunebakan    schedule 26.12.2014