【问题标题】:Access Object property from template in handlebars从车把中的模板访问对象属性
【发布时间】:2016-06-23 11:01:48
【问题描述】:

根据文档和此链接Stackoverflow link,我应该能够访问我的对象的属性,但它不起作用。这是我截取的代码。

车把助手

var person ={
    name : "test"
};

Handlebars.registerHelper('getperson', function() {
    console.log(person.name);
    return person;

模板

<h1>{{ getperson }} </h1>

在这个星座中我得到渲染:[object Object]

但我想显示人名“test”

{{#with getperson}}
    <h1< {{name}} </h1>
{{/with}}

这个剪断对我不起作用。 :-(

【问题讨论】:

    标签: javascript templates handlebars.js helper


    【解决方案1】:

    我心中的一些错误:

    首先使用这个结构,所以人是你可以命名的东西:

    var context = { "person" : { name : "test" , id : "id" } }; 
    

    第二次使用此模板:助手将使用您结构中的人员:

    <div class="data-container">
    {{#getperson person}}
    {{/getperson}}
    </div>
    

    第三个你的助手现在可以使用你传递的参数:

      Handlebars.registerHelper('getperson', function(data, options) {
        var out = "<h1>" + data.name + "</h1><br/><h2>"  + data.id  + "</h2>"; 
        console.log(out);
        return out;
      });
    

    您可以在此处找到完整的工作示例:

    https://jsfiddle.net/ChristopheThiry/eorkkrts/

    编辑:更新以匹配具有多个数据字段的新要求。

    【讨论】:

    • 感谢您提供的 jsfiddle 示例。问题是,我想访问更多属性。我需要从我的助手返回一个完整的对象,而不仅仅是一个属性。
    • 我已经更新了小提琴,这个例子对你来说更方便吗?
    • 在我的真实应用程序中,我需要访问许多不同位置的对象属性,并且外部 Html 元素可以动态更改。但如果这是唯一的解决方案,我将在 helpers 方法中构建 html。谢谢。 :)
    • 是的,抱歉,我没有更好的建议。
    猜你喜欢
    • 1970-01-01
    • 2020-09-27
    • 2016-09-04
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    相关资源
    最近更新 更多