3

我有一个项目集合和 Meteor.users 集合。我的目标是将项目的文档 _id 添加到用户名。

HTML:

<template name="insertName">
    {{#each projectList}}
        {{> projectView}}
    {{/each}}
</template>

<template name="projectView">
    {{#autoForm collection="Meteor.users" id="insertUser" type="insert"}}
         {{> afQuickField name="username"}}
         // From here I can access the _id property from the projects collection
         // Question: How do I pass it to my form without creating an input field?
    {{/autoForm}}
</template>

JS:

Meteor.users = new Meteor.Collection('projects');
Meteor.users.attachSchema(new SimpleSchema({
    username: {
        type: String,
        max: 50
    },
    projectId: {
        type: String,
        max: 20
        // Use autoValue to retrieve _id from projects collection?
    }
});

使用上面的 HTML 代码,我知道我可以这样写:

{{> afQuickField name='projectId' value=this._id}}

但是,这会创建一个我不想要的输入字段。如何在没有可见输入字段的情况下将 _id 传递给我的 autoForm?或者也许有人可以指出我不同的方向?

4

2 回答 2

4

有多种方法可以解决这个问题,但基本上,如果你想要一个隐藏字段,你必须将自动表单字段的类型设置为隐藏。

你可以这样做:

{{> afQuickField name='projectId' value=this._id type='hidden'}}

或在架构本身上执行此操作

Meteor.users = new Meteor.Collection('projects');
Meteor.users.attachSchema(new SimpleSchema({
    username: {
        type: String,
        max: 50
    },
    projectId: {
        type: String,
        max: 20,
        autoform: {
          type: 'hidden'
        }
    }
});
于 2015-10-31T16:26:17.893 回答
1

我不确定这是最好的解决方案,但我认为这是解决您遇到的问题的一种方式:

{{> afQuickField name='projectId' value=this._id type='hidden'}}
于 2015-10-31T16:22:51.260 回答