Meteor / Blaze 渲染:另一个 {{each}} 中的 {{each}} 没有 return 正确的数据(数据上下文)
Meteor / Blaze rendering : {{each}} in another {{each}} doesn't return the right data (data context)
我想知道您是否可以给我一些解决此问题的线索 'problem'。我是 JS (+ Meteor) 的新手,所以它对你来说可能超级简单。我正在使用 helpers
和 blaze/spacebars
进行渲染。
我有一个简单的帮手:
Template.monitoring.helpers({
'realtime': function(){
return {
house: house.find( {} ),
neighbours: neighbours.find( {} ),
}
} // end of realtime
}); // end of helpers
至此,一切正常。我能够检索到我想要的数据。问题是我无法像我想要的那样渲染它。在我下面 template
.
<template name="monitoring">
{{#each realtime.house}}
<div class="card red">
SHOW STUFF ABOUT HOUSE
</div>
<div class="card blue">
{{#each realtime.neighbours}}
SHOW STUFF ABOUT NEIGHBOURS OF THE SPECIFIC HOUSE
{{/each}}
</div>
{{/each}} -> end of each realtime.house
</template>
更准确地说,当我的模板被渲染时:
- 红牌数=房子数=>完美
每张红牌包含一个家的数据=>完美
蓝卡数=房子数=>完美
- 每张蓝卡包含所有邻居的数据 => 错误。我要的是具体房子的邻居数据
你知道如何在正确的地方获得正确的东西吗?
非常感谢。
您需要两个帮手:一个 returns 房屋,一个 returns 以房屋为背景的邻居。没有模式,我无法给出准确的答案,但我们假设每个邻居都有一个 houseId
属性 连接两者。
Template.monitoring.helpers({
houses: function () {
return house.find();
},
neighbors: function () {
// Note the context here is a house because it's
// called from within an each.
return neighbours.find({ houseId: this._id });
},
});
你的模板看起来像这样(假设邻居都应该在蓝卡中):
<template name="monitoring">
{{#each houses}}
<div class="card red">
SHOW STUFF ABOUT HOUSE
</div>
{{#each neighbours}}
<div class="card blue">
SHOW STUFF ABOUT NEIGHBOURS OF THE SPECIFIC HOUSE
</div>
{{/each}}
{{/each}}
</template>
我想知道您是否可以给我一些解决此问题的线索 'problem'。我是 JS (+ Meteor) 的新手,所以它对你来说可能超级简单。我正在使用 helpers
和 blaze/spacebars
进行渲染。
我有一个简单的帮手:
Template.monitoring.helpers({
'realtime': function(){
return {
house: house.find( {} ),
neighbours: neighbours.find( {} ),
}
} // end of realtime
}); // end of helpers
至此,一切正常。我能够检索到我想要的数据。问题是我无法像我想要的那样渲染它。在我下面 template
.
<template name="monitoring">
{{#each realtime.house}}
<div class="card red">
SHOW STUFF ABOUT HOUSE
</div>
<div class="card blue">
{{#each realtime.neighbours}}
SHOW STUFF ABOUT NEIGHBOURS OF THE SPECIFIC HOUSE
{{/each}}
</div>
{{/each}} -> end of each realtime.house
</template>
更准确地说,当我的模板被渲染时:
- 红牌数=房子数=>完美
每张红牌包含一个家的数据=>完美
蓝卡数=房子数=>完美
- 每张蓝卡包含所有邻居的数据 => 错误。我要的是具体房子的邻居数据
你知道如何在正确的地方获得正确的东西吗? 非常感谢。
您需要两个帮手:一个 returns 房屋,一个 returns 以房屋为背景的邻居。没有模式,我无法给出准确的答案,但我们假设每个邻居都有一个 houseId
属性 连接两者。
Template.monitoring.helpers({
houses: function () {
return house.find();
},
neighbors: function () {
// Note the context here is a house because it's
// called from within an each.
return neighbours.find({ houseId: this._id });
},
});
你的模板看起来像这样(假设邻居都应该在蓝卡中):
<template name="monitoring">
{{#each houses}}
<div class="card red">
SHOW STUFF ABOUT HOUSE
</div>
{{#each neighbours}}
<div class="card blue">
SHOW STUFF ABOUT NEIGHBOURS OF THE SPECIFIC HOUSE
</div>
{{/each}}
{{/each}}
</template>