Метеор: установите autoValue поля для других профилей userId

Я новичок в Meteor и программировании, если это не имеет смысла или вам нужна дополнительная информация, дайте мне знать.

Я загружаю страницу профиля другого пользователя. Итак, у меня есть 2 идентификатора пользователя; this.userId и другие идентификаторы пользователей. Я хочу использовать autoValue для сохранения обоих идентификаторов пользователей при выполнении действия. Я не могу понять, как установить идентификатор других пользователей, хотя я могу отобразить его на странице html.

Путь: schema.js

Schemas.class = new SimpleSchema({
    Title: {
        type: String,
        optional: true
    },
    teacherProfile: {
        type: String,
        optional: true,
        autoValue: function() {
            return this.userId
        },
        autoform: {
            type: "hidden"
        }
    },
    studentProfileId: {
        type: String,
        optional: true,
        type: String,
         autoform: {
         defaultValue: "studentProfileId",
         type: "hidden"
    }
    }
});

Путь: profile.js

Template.teacherProfile.helpers({
studentProfile: ()=> { 
var id = FlowRouter.getParam('id');

return Meteor.users.findOne({_id: id}); 
}
});

person bp123    schedule 29.01.2016    source источник
comment
Я не думаю, что вы можете установить его с помощью автозначения, потому что SimpleSchema не смотрит на DOM или контекст данных шаблона на самом деле. Вы должны установить otherUserProfileId в своем обработчике событий или, что еще лучше, просто установите для него значение скрытого поля.   -  person Michel Floyd    schedule 30.01.2016
comment
Спасибо, Мишель. Не могли бы вы показать мне, как установить для него скрытое поле, пожалуйста.   -  person bp123    schedule 30.01.2016
comment
Используйте defaultValue в макете автоформы См. github.com/aldeed/meteor-autoform#affieldinput   -  person Michel Floyd    schedule 30.01.2016
comment
Спасибо @michel. Когда я использую defaultValue, я все еще не уверен, как мне получить доступ к идентификатору других пользователей. Я пытался сослаться на идентификатор из ‹span id=otherUserProfileId›{{id}}‹/span›, но это не работает. Какие-либо предложения?   -  person bp123    schedule 30.01.2016
comment
Как вы приводите другого пользователя в шаблон?   -  person Michel Floyd    schedule 30.01.2016
comment
Извините, @MichelFloyd. Я включил помощник выше. Я хотел бы установить идентификатор studentProfile как значение по умолчанию. Это возможно?   -  person bp123    schedule 31.01.2016


Ответы (1)


Это мое решение, кажется, работает. Спасибо всем, кто помог.

Путь: schema.js

Schemas.class = new SimpleSchema({
    Title: {
        type: String,
        optional: true
    },
    teacherProfile: {
        type: String,
        optional: true,
        autoValue: function() {
            return this.userId
        },
        autoform: {
            type: "hidden"
        }
    },
    studentProfileId: {
        type: String,
        optional: true,
        autoform: {
            type: "hidden"
        }
    }
});

Путь: profile.js

Template.profile.helpers({
    studentProfile: ()=> { 
        var id = FlowRouter.getParam('id');

        return Meteor.users.findOne({_id: id}); 
    },
    studentProfileId: () => {
        return FlowRouter.getParam('id');
    }
)};

Путь: profile.html

<template name="profile">

    {{#autoForm collection="Jobs" id="Offer" type="insert"}}

        {{> afQuickField name='Title'}}               
        {{> afQuickField name='studentUserId' value=studentProfileId}}              

        <button type="submit" class="btn btn-primary">Insert</button>

    {{/autoForm}}

</template>
person bp123    schedule 01.02.2016