Mongodb 当它';在父数据上下文中是什么?

Mongodb 当它';在父数据上下文中是什么?,mongodb,meteor,Mongodb,Meteor,对于Template.parentData(),这似乎是一个打开和关闭的案例,但直到今天,我还从未设法让那个坏孩子正常工作过 我想要的是一个事件,它根据单击的按钮更新文档,但按钮本身取决于文档中更深层次的数组,而\u id不存在。 以下是我所拥有的: 首先,一个帮助器,用于设置上下文peopleList: Template.people.helpers({ peopleList: function() { return People.find() } 我使用它在HTML中迭代,

对于
Template.parentData()
,这似乎是一个打开和关闭的案例,但直到今天,我还从未设法让那个坏孩子正常工作过

我想要的是一个事件,它根据单击的按钮更新文档,但按钮本身取决于文档中更深层次的数组,而
\u id
不存在。

以下是我所拥有的:

首先,一个帮助器,用于设置上下文
peopleList

Template.people.helpers({
  peopleList: function() {
    return People.find()
  }
我使用它在HTML中迭代,打印出存储在数据库中的每个人的名字和姓氏,以及他们喜欢的颜色(删除无关的标记):

想象一下,现在我想要能够按下这些按钮中的任何一个,它们保存着最喜欢的颜色,来设置,呃,super duper最喜欢的颜色或其他什么。因此,点击blancheadamond按钮应该会更新文档,添加值为
blancheadamond
的键
masterColor

活动:

'click button': function() {
    var masterColor = ????
    var docId = ????
    Meteor.call('setMasterColor', masterColor, docId)
  }
我可以提供HTML
data
-标记来保存颜色值(因为事件中的
this
会抛出一些奇怪的数组,每个字母由于某种原因被分隔开),甚至
\u id
也可以提供
{../\u id}}
,但这感觉像是作弊,我真的很想学习如何在助手或事件中做同样的事情


我强烈感觉
Template.parentData()
就是这种情况,但是当我
console.dir
打开它时,它什么也不返回。我该怎么办?

围绕父数据的混淆与事件上下文有关。事件被附加到其上下文不是人物或颜色的模板。每当您觉得需要开始在代码中添加
数据-
属性时,答案几乎总是添加更多模板。例如:

html


    {{{#每个人名单} {{>人} {{/每个}}
  • {{firstName}}{{lastName}} {{{#每个最喜欢的颜色} {{>颜色} {{/每个}}
  • {{this}}
    js

    Template.color.events({
    “单击按钮”:函数(){
    //此上下文是一种颜色-请记住将其转换为字符串
    var masterColor=String(此);
    //父上下文是一个人
    var docId=Template.parentData(1)。\u id;
    返回Meteor.call('setMasterColor',masterColor,docId);
    }
    });
    
    我们可以看看
    setMasterColor
    方法吗?
    {
      firstName: "Johnny",
      lastName: "Boy",
      favoriteColors: ["red", "blue", "blanchedAlmond"]
    }
    
    'click button': function() {
        var masterColor = ????
        var docId = ????
        Meteor.call('setMasterColor', masterColor, docId)
      }