Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 小胡子:指定标签只能从子项中提取,而不能从父项中提取_Javascript_Mustache - Fatal编程技术网

Javascript 小胡子:指定标签只能从子项中提取,而不能从父项中提取

Javascript 小胡子:指定标签只能从子项中提取,而不能从父项中提取,javascript,mustache,Javascript,Mustache,我有一些数据,其中子项与父项具有相同的属性。当我为子项中的那些属性使用标记时,Mustach会感到困惑,有时会从父项中提取 以下是数据: { "menus":[ { "title":"Food", "slug":"Food", "sections":[ { "title":"Soup & Salad", "type":"section", "desc":"Dress

我有一些数据,其中子项与父项具有相同的属性。当我为子项中的那些属性使用标记时,Mustach会感到困惑,有时会从父项中提取

以下是数据:

{
  "menus":[
    {
      "title":"Food",
      "slug":"Food",
      "sections":[
        {
          "title":"Soup & Salad",
          "type":"section",
          "desc":"Dressing Choices: Hidden Valley Ranch®, Creamy Bleu Cheese, ...",
          "items":[
            {
              "title":"Sesame Ginger Chicken & Quinoa Salad",
              "name":"sesame-ginger-chicken--quinoa-salad",
              "type":"item",
              "desc":"fresh spring and baby spinach mix ..."
            },
            {
              "title":"Add to Any Salad",
              "name":"add-to-any-salad",
              "type":"item",
              "desc":null
            }
          ]
        }
      ]
    }
  ]
};
和胡子模板:

{{#menus}}
  <div id="menu_{{slug}}" class="Menu-Container">
    <h1 class="Section-Title">{{{title}}}</h1>

    {{#desc}}<p class="menu_desc desc">{{{desc}}}</p>{{/desc}}

    <div class="Menu Tabs">
      {{#sections}}
      <section id="section_{{id}}" class="Menu-Section">
        <h2 class="title">{{{title}}}</h2>

        {{#desc}}<p class="section_desc">{{{desc}}}</p>{{/desc}}

        {{#items}}
        <dl class="menuItem">
        <dt class="item_title">{{{title}}}</dt>
        {{#desc}}<dd class="item_description">{{{desc}}}</dd>{{/desc}}
        </dl>
        {{/items}}
      </section>
      {{/sections}}
    </div>
  </div>
{{/menus}}
{{{#菜单}
{{{title}}}
{{{{desc}}

{{{{desc}}

{{/desc} {{#部分} {{{title}}} {{{{desc}}

{{{{desc}}}

{{/desc} {{{#项目} {{{title}}} {{{{desc}}{{{desc}}{{/desc}} {{/items} {{/sections} {{/菜单}
以下是输出:

<div id="menu_Food" class="Menu-Container">
  <h1 class="Section-Title">Food</h1>
  <section id="section_s5005429" class="Menu-Section">
      <h2 class="title">Soup &amp; Salad</h2>
      <p class="section_desc">Dressing Choices: Hidden Valley Ranch®, Creamy
          Bleu Cheese, ...</p>
      <dl class="menuItem">
          <dt class="item_title">Sesame Ginger Chicken &amp; Quinoa Salad</dt>
          <dd class="item_description">fresh spring and baby spinach mix ...</dd>
      </dl>
      <dl class="menuItem">
          <dt class="item_title">Add to Any Salad</dt>
          <dd class="item_description">Dressing Choices: Hidden Valley Ranch®,
              Creamy Bleu Cheese, ...</dd>
      </dl>
  </section>
</div>

食物
汤及;沙拉
敷料选择:Hidden Valley Ranch®,奶油状
蓝奶酪

芝麻姜鸡;藜麦沙拉 新鲜的春天和小菠菜的混合。。。 把它加到沙拉里 着装选择:Hidden Valley Ranch®, 奶油蓝奶酪。。。

对于最后一项,“添加到任何沙拉”,将
desc
属性设置为
null
,Mustache从父
部分插入
desc
。有没有办法指定Mustach只使用
中的
desc
属性,而不使用其父
部分

为什么要使用块{{#desc}?不只是{{{{{desc}}}工作吗?或者,如果您使用这些块,那么只要{{}}就可以了。另外,如果没有
{{desc}}
,我不想让它添加
,因为没有
{{desc}}
,所以块是空的。是的,
{.}
有效,我只是习惯性地在那里使用了
{{desc}
。我现在看到了问题,找不到解决办法。我甚至尝试了分部和重载。要修复它,您可以修改mustache文件,特别是“Context.prototype.lookup()”例程,以避免“Context=Context.parent;”部分。或者,您可以在将数据馈送到模板之前更改数据,以删除不明确的名称或插入冒烟枪,您可以使用这些冒烟枪触发空块行为。索引工作:,就像{items.length}这样的属性一样,您可以使用“.length”嗅出null vs”“我用一个非常简单的函数找到了解决问题的方法:。它确实取决于您的数据是否包含“:null”或“:null}”作为奇怪的字符串。它会向渲染时间添加一两毫秒,但会保留其他逻辑和代码,使用未修改的胡须功能,防止出现空胡须,是一个单线修补程序,并允许在需要时通过克隆数据进行更多修改,从而使修补程序不会向上游浮动。如果这是一种舒适地使用胡须时间的方法,那么额外的json.parse()时间将可以忽略不计。