我正在制作一个简单的测验应用,它会在提交后返回登录用户的结果。但是,此处仅返回所有用户的结果,而不是仅返回登录用户。
<template name="personality">
<h1 class=personalityIntro>I see myself as someone who...</h1>
<div class="test">
{{> quickForm
collection="Big5"
id="insertPersonality"
type="method"
meteormethod="submitBig5Scale"}}
</div>
<div class="userRe">
<hr>
{{#each big5s}}
{{> showResult}}
{{/each}}
</div>
</template>
<template name="showResult">
<div class=testResult>
<h2>Neuroticism: {{>neurotic cons8}}</h2>
</div>
</template>
<template name="showResult">
<div class=testResult>
<h2>Neuroticism: {{>neurotic cons8}}</h2>
</div>
</template>
这是我存储数据的方式:
Big5.attachSchema(new SimpleSchema({
cons8: {
label: "...is talkative",
type: Number,
optional: false,
autoform: {
afFormGroup: {
type: "select-radio-inline",
'formgroup-class': 'custom-radio-class',
options: function () {
return [
{label: "1", value: 1},
{label: "2", value: 2},
{label: "3", value: 3},
{label: "4", value: 4},
{label: "5", value: 5}
];
}
}
}
},
})
)
查找所有用户数据:
big5s: function (){
return Big5.find()
}
})
仅返回登录用户的结果:
Template.neurotic.helpers({
add: function(cons8){
return Meteor.user().big5s.cons8
}
})
答案 0 :(得分:0)
存储响应数据时,您不会将其与发出该响应的用户相关联。您的架构没有字段,例如userId,用于存储有关用户的信息,从而将用户与其响应相关联。
你的助手:
Template.neurotic.helpers({
add: function(cons8){
return Meteor.user().big5s.cons8
}
})
...我没有看到被调用,我认为是尝试从您的用户对象中获取您的架构数据。我没有看到任何将这些数据放在用户对象上的代码,因此我认为您对此应该如何工作感到困惑。
您可以首先在架构中添加userId,例如
Big5.attachSchema(new SimpleSchema({
userId: {
type: String
},
cons8: {
label: "...is talkative",
你的流星方法,你不会显示,也会与cons8数据一起填充。
您没有显示任何发布代码,因此我认为您已启用自动发布。这将是足够的。
你的find()会看起来像这样:
return Big5.findOne({userId: Meteor.userId()});
如果我错了,并且您确实将响应数据连接到用户对象,则需要显示更多代码以帮助我们了解您正在做的事情。