0
我有一个组的集合模板。每个组文档都包含一个数组,每个元素包含一个数字和一个布尔值。该模板被布置如下:访问流星模板助手中的父数据
<template name="group">
<li class="{{#if checked}}checked{{/if}} groupBox">
<button class="delete">×</button>
<input type="checkbox" checked="{{checked}}" class="toggle-checked-group" />
<span class="text">{{name}}</span>
<ul>
{{#each this.numbers}}
<li class="checked">
<button class="deleteNumber">×</button>
<input type="checkbox" checked="{{checked}}" class="toggle-checked-number" />
<span class="text">{{number}}</span>
</li>
{{/each}}
</ul>
<form class="new-number">
<input type="text" name="number" placeholder="Type to add a number to this group" />
</form>
</li>
</template>
一个例子组文档被布置为这样:
{
"_id": "pSpNcJKDPhRtGhtov",
"name": "Sample Group",
"createdAt": "2015-06-27T00:45:39.137Z",
"owner": "t2ELweZsZqJXNQqdZ",
"username": "brodan",
"checked": false,
"numbers": [
{
"number": "1234567",
"checked": true
}
]
}
我需要能够从数字数组中删除一个特定的号码时我点击deleteNumber按钮。我有以下的javascript,不能弄清楚如何获取父上下文中MongoDB的查询中使用:
Template.group.events({
"click .deleteNumber": function() {
Meteor.call("deleteNumber");
}
});
Meteor.methods({
deleteNumber: function (numbers) {
//Need to delete number from group via MongoDB query here.
}
});
我知道我可以在deleteNumber方法使用$拉动运营商在我的MongoDB的查询,但为了获得正确的组,我需要从模板中的数字获得父数据。
谢谢xamfoo的回答。
工作deleteNumber方法现在建立这样的:
deleteNumber: function (groupId, number) {
Groups.update(groupId, {$pull: {numbers: {"number": number}}});
}
这工作完美无瑕。非常感谢你的帮助。我知道有一些方法可以在模板处理程序中获取上下文,而不仅仅是在模板中,但我无法弄清楚。 – Brodan
很高兴我能帮忙:) – xamfoo