如何从模板访问对象的属性?
Posted
技术标签:
【中文标题】如何从模板访问对象的属性?【英文标题】:How Do I Access an Object's Properties From a Template? 【发布时间】:2012-05-01 08:38:25 【问题描述】:根据http://handlebarsjs.com/expressions.html,我应该可以这样做:
<h1>article.title</h1>
但我似乎无法让它在流星中工作。这是我的模板:
<template name="content">
#if item
<p>item.name</p>
/if
</template>
这是返回项目的 javascript:
Template.content.item = function()
return Items.findOne( _id: Session.get("list_id") );
;
是的,该项目确实有一个名为 name
的属性 :-)
当我这样做时,我在 Firebug 中看到一个错误,上面写着 ret is undefined
这可以追溯到evaluate.js:
for (var i = 1; i < id.length; i++)
// XXX error (and/or unknown key) handling
ret = ret[id[i]];
return ret;
在出错的那一刻,ret
引用了window
对象。这是怎么回事?
【问题讨论】:
【参考方案1】:你应该使用 #with object
如果你的对象是这样的:
my_object =
name : 'my_name',
prop : 'my_prop'
在你的模板中你可以做:
<template name="my_template">
#with my_object
<p>Name is name<p>
<p>Prop is prop</p>
/with
</template>
给你:)
【讨论】:
我将补充一点,使用tryHandlebarsjs.com 站点(粘贴一些 JSON 和您的模板)可能是找出在这种情况下出了什么问题的最快方法之一。然后,您只需专注于您的模板和数据,而没有其他任何可能出错的地方。 @Paperwork:再次感谢。我想知道延迟是什么,现在看来我的问题激发了您注册 ***,所以我想我们今天都做了一件好事 :-) 但是只有当对象的属性为真时,如何使用#with object?以上是关于如何从模板访问对象的属性?的主要内容,如果未能解决你的问题,请参考以下文章