首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Handlebars.Net如何在不存在数据的情况下更改行为

Handlebars.Net如何在不存在数据的情况下更改行为
EN

Stack Overflow用户
提问于 2020-10-15 20:17:55
回答 2查看 559关注 0票数 0

在Handlebars.Net中,如果没有匹配字段,它只是在那里放置一个空白。

代码语言:javascript
复制
string source = @"My name is {{Name}} and I work at {{Job}}";
var template = Handlebars.Compile(source);
var data = new {
    Job = "Walmart"
};
var result = template(data);

结果是因为{{Name}}不在数据中。

我的名字是,我在沃尔玛工作

是否有一个设置可以说,如果数据字段不存在,就不要替换它?

我希望它能回来:

我的名字是{{ name },我在沃尔玛工作

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-06 18:02:10

有两种选择:

  1. 1.x支持:使用UnresolvedBindingFormatter handlebars.Configuration.UnresolvedBindingFormatter = "('{0}' is undefined)";
  2. 支持从2.0.0-preview-1开始:使用钩子 handlebars.RegisterHelper("helperMissing",(上下文,参数) => { var name = arguments.Last().ToString();返回"{{“+ name.Trim('','') +”}“;});

有关更多细节,请参见这个GitHub问题

票数 5
EN

Stack Overflow用户

发布于 2020-10-15 22:26:19

我认为您必须使用#if,如下所示:

My name is {{#if Name}}{{Name}}{{else}}\{{Name}}{{/if}} and I work at {{Job}}

注意:我应该感谢这个回答,感谢它如何告诉车把来渲染支撑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64379082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档