3

我碰壁了,看不到如何遍历在提供的数据中找到的车把助手。我调整了一个 jsfiddle 来说明我想要做什么。任何帮助是极大的赞赏。

您会看到{{position.one}}数据中的 等于Team Lead我可以毫无问题地输出的字符串,但是当在内部使用该助手时{{person.jobTitle}},它只会输出Front End {{position.one}}

有没有办法让这个输出在里面{{position.one}}{{person.jobTitle}}所以输出是Front End Team Lead

这是小提琴。谢谢参观!

http://jsfiddle.net/z9u5jz7w/1/

回复:@luciano-santos 试图找到一种方法来遍历所有内容,无论表达式是独立的还是数据包含另一个表达式。

我找到了这个库扩展(https://github.com/mateusmaso/handlebars.nested),但似乎只有当表达式直接在被评估的表达式中时才有效,即{{jobTitle {{position.one}} }}而不是{{jobTitle}}实际包含{{position.one}}表达式。

似乎我可能需要写一些东西来评估表达式是否包含{{并重新评估。

回答

最终为此编写了一个自定义助手。希望它也可以帮助其他人。此帮助程序允许评估在 JSON 或给定数据集中找到的嵌套表达式。

https://github.com/davidwickman/handlebars-helper-inception

4

2 回答 2

1

最终为此编写了一个自定义助手。希望它也可以帮助其他人。此帮助程序允许评估在 JSON 或给定数据集中找到的嵌套表达式。

https://github.com/davidwickman/handlebars-helper-inception

于 2015-04-29T05:39:38.277 回答
0

在车把中,表达式不能包含其他表达式。您最好在发送到 Handlebars 之前准备好数据,就像您对名称所做的那样:

var data = { 
    users: [ { 
        person: {
            firstName: "Garry", 
            lastName: "Finch"
        },
        job: {
            title: "Front End",
            position: "Team Lead"
        },
        twitter: "gazraa" 
    } ]
};

这样,您可以创建一个助手,就像您对人名所做的那样,并连接两个值。

Handlebars.registerHelper('fullJob', function(job) {
  return job.title + " " + job.position;
});
于 2015-04-28T22:35:47.257 回答