【发布时间】:2015-05-03 00:00:33
【问题描述】:
学习 Meteor,我仍然陷入概念泥潭。
我有一个集合,其中每个项目都有一个名为“props”的数组,其中包含零个或多个属性名称:loudmouth、fixer、networker、outcast 等。
我还有一组属性对象,每个对象都与一个字形图标相关联。
现在,我的模板将数据项显示为包含属性标识符的
{name: "loudmouth", icon: "bullhorn", other: "rtgb"}
{name: "fixer", icon: "wrench", other: "iun"}
{name: "networker", icon: "link", other: "retf"}
{name: "outcast", icon: "ban-circle", other: "vcfdds"}
所以这个...
<li>AAA loudmouth fixer outcast</li>
<li>BBB fixer networker</li>
...应该变成这个...
<li>AAA <span class="glyphicon glyphicon-bullhorn" aria-hidden="true"></span> <span class="glyphicon glyphicon-wrench" aria-hidden="true"></span> <span class="glyphicon glyphicon-ban-circle" aria-hidden="true"></span></li>
<li>BBB <span class="glyphicon glyphicon-wrench" aria-hidden="true"></span> <span class="glyphicon glyphicon-link" aria-hidden="true"></span></li>
这不是 SQL 连接;我正在为每个返回的结果项添加属性。最好的方法是什么?
我尝试了几种方法,但它们真的很乱。
1) 第一个是客户端中粗略的内/外循环作业。对于外部的每个数据项,我会附加 标记,这些标记是从内部循环的字符串中连接起来的。这似乎给了我某种竞争条件,带有虚假的“未定义”。 (我还不清楚它的同步性规则)。我应该将属性集合预取到名称/值映射对象中吗?另外,奇怪的是,我的 HTML 显示的是 标签的文本而不是图标?!?!嗯?
2) 然后我尝试使用 Meteor.method 和 Meteor.call 在服务器端执行此操作。我无法同步取回数据,也不真正理解如何异步填充模板(来自回调)。您是否在 Template.mine.created() 期间填充了一个数组,然后从 Template.mine.helper 返回该数组? Meteor.method / Meteor.call 组合应该用于更改后端数据,NOT 用于检索后端数据,我对吗?
有没有人知道关于这种事情的好教程?你会怎么做?
我希望这不会因为“基于意见”而被拒绝,我相信所有有效的替代方案都会帮助其他有相关问题需要解决的人。
【问题讨论】:
标签: javascript mongodb templates meteor conceptual