如果"this"为空字符串,则句柄中的{{#each this}}不起作用

ash*_*143 6 javascript json handlebars.js

认为我的json是这样的:

{
    main: {
        "" : [{some_obj},{some_obj}]
    },
    secondary: {
        "key": [{some_obj},{some_obj}]
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我的第一个#each将运行主要和辅助.

{{#each this}}
    -- This is for main and secondary --
    {{#each this}}
        -- This is for "" in case of main and "key" in case of secondary --
    {{/each}}
{{/each}} 
Run Code Online (Sandbox Code Playgroud)

如果"this"为空,我的嵌套#each将无效,如我的json中显示的"main"属性所示

eku*_*ela 1

似乎 3.xx 有一个错误导致了这个问题。 这是在 4.0.0 中修复此问题的提交

我用下面的代码片段检查了这些版本:

4.xx:好的

3.xx:不行

2.0.0:好的

var data = {
  main: {
    "": [1, 2, 3]
  },
  secondary: {
    "key": [3, 4, 5]
  }
};
var compiled = Handlebars.compile(document.getElementById('temp').innerHTML);
document.write(compiled(data));
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.5/handlebars.js"></script>
<script id="temp" type="text/x-handlebars-template">
  {{#each this}}
    {{@key}}<br>
    {{#each this}}
      &nbsp;&nbsp;"{{@key}}": {{this}}<br>
    {{/each}}
  {{/each}} 
</script>
Run Code Online (Sandbox Code Playgroud)