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)
}
我可以提供HTMLdata
-标记来保存颜色值(因为事件中的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)
}