【发布时间】:2014-11-03 16:37:15
【问题描述】:
现在我在收到此错误之前遇到了类似的问题:
模板助手中的异常:TypeError:无法读取属性 未定义的“个人资料”
同样的事情再次发生,但在第二个订单上,其中包含另一个用户配置文件信息(第一个配置文件已定义)。 我如何让它在 {{#each orders}} 中重新渲染?
当只有 2 个订单时,由于某种原因,似乎 info.firstName、lastName 和 building 被调用了 3 次...
在 HTML 中:
<template name="orderItem">
<section>
<form role="form" id="ordersList">
<div>
{{#each orders}}
<input type="text" name="name" value="{{info.firstName}} {{info.lastName}}">
{{/each}}
</div>
<div>
{{#each orders}}
<input type="text" name="building" value={{info.building}}>
{{/each}}
</div>
<div>
{{#each orders}}
<input type="text" name="featuredDish" value={{featuredDish}}>
{{/each}}
</div>
</form>
</section>
</template>
在javascript中:
Template.orderItem.orders = function() {
var todaysDate = new Date();
return Orders.find({dateOrdered: {"$gte": todaysDate}});
};
Template.orderItem.info = function() {
var userId = this.userId;
var user = Meteor.users.findOne(userId)
var firstName = user.profile.firstName;
var lastName = user.profile.lastName;
var building = user.profile.building;
return {
firstName: firstName,
lastName: lastName,
building: building
}
};
感谢您的帮助!
【问题讨论】:
-
在var user = Meteor.users.findOne(userId);的末尾添加分号
-
您还在使用自动发布还是为 Meteor.users 集合设置正确的发布?请注意,Meteor 会自动设置一个仅发布当前登录用户的用户名的发布:这不足以满足您的需要。
标签: javascript meteor