返回登录用户的分数流星

时间:2017-01-17 12:58:58

标签: meteor

我正在制作一个简单的测验应用,它会在提交后返回登录用户的结果。但是,此处仅返回所有用户的结果,而不是仅返回登录用户。

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

1 个答案:

答案 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()});

如果我错了,并且您确实将响应数据连接到用户对象,则需要显示更多代码以帮助我们了解您正在做的事情。