如何从模板访问对象的属性?

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?

以上是关于如何从模板访问对象的属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 django 模板访问多对多“通过”表的属性?

如何从车把模板访问主干模型的计算字段?

如何从车把模板访问主干模型的计算字段?

当从扩展符号访问对象时如何访问 Javascript 对象的嵌套按名称属性...?

我可以访问 Django 模板列表中第一个对象的属性吗?

从 django 模板访问 JSON 属性