Meteor / Iron 路由器 - 在 {{#each}} 循环中获取父数据
Meteor / Iron router - Get parent data in an {{#each}} loop
正在考虑:
Template.tasks.helpers({
equals: function() {
// var data = ?
return data.test == this;
}
});
并且:
<template name="tasks">
<ul>
{{#each elements}}
<li>
{{this}} {{#if equals}}Equals!{{/if}}
</li>
{{/each}}
</ul>
</template>
例如:
Router.route('tasks', {
data: function () {
var example = {
test: 42,
elements: [1, 2, 42, 100]
}
return example;
}
});
如何获取父数据上下文(通过 Iron Router 的 route()
方法与数据字段传递的那个)?
在上面的例子中,我们如何显示 42 - Equals! ?
我相信你正在寻找 Template.parentData():
Template.tasks.helpers({
equals: function() {
var data = Template.parentData();
return data.test == this;
}
});
这是一个活生生的例子:http://meteorpad.com/pad/LHxyDYkmNQB9H2Ezy/ParentData
我不知道这是否是唯一的方法,但我找到了在模板中使用 ..
的解决方案:
<template name="tasks">
<ul>
{{#each elements}}
<li>
{{this}} {{#if equals ..}}Equals!{{/if}}
</li>
{{/each}}
</ul>
</template>
然后:
Template.tasks.helpers({
equals: function(parentData) {
return parentData.test == this;
}
});
正在考虑:
Template.tasks.helpers({
equals: function() {
// var data = ?
return data.test == this;
}
});
并且:
<template name="tasks">
<ul>
{{#each elements}}
<li>
{{this}} {{#if equals}}Equals!{{/if}}
</li>
{{/each}}
</ul>
</template>
例如:
Router.route('tasks', {
data: function () {
var example = {
test: 42,
elements: [1, 2, 42, 100]
}
return example;
}
});
如何获取父数据上下文(通过 Iron Router 的 route()
方法与数据字段传递的那个)?
在上面的例子中,我们如何显示 42 - Equals! ?
我相信你正在寻找 Template.parentData():
Template.tasks.helpers({
equals: function() {
var data = Template.parentData();
return data.test == this;
}
});
这是一个活生生的例子:http://meteorpad.com/pad/LHxyDYkmNQB9H2Ezy/ParentData
我不知道这是否是唯一的方法,但我找到了在模板中使用 ..
的解决方案:
<template name="tasks">
<ul>
{{#each elements}}
<li>
{{this}} {{#if equals ..}}Equals!{{/if}}
</li>
{{/each}}
</ul>
</template>
然后:
Template.tasks.helpers({
equals: function(parentData) {
return parentData.test == this;
}
});