Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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_Json_Pug - Fatal编程技术网

Javascript 如何绕过玉器缺端

Javascript 如何绕过玉器缺端,javascript,json,pug,Javascript,Json,Pug,有没有办法做这样的事 ul.categories - var categories = []; each ingredient in mv.data.recipe.ingredients if !categories.includes(ingredient.categoryId) - categories.push(ingredient.categoryId); li.category #{ingredient.categoryName} ul.ingredien

有没有办法做这样的事

ul.categories
- var categories = [];
each ingredient in mv.data.recipe.ingredients
  if !categories.includes(ingredient.categoryId)
    - categories.push(ingredient.categoryId);
    li.category #{ingredient.categoryName}
      ul.ingredients
  - // endif?
        li.ingredient #{ingredient.number} #{ingredient.unitName} #{ingredient.name}
如果没有
endif?
注释,则代码适用于每个类别中的第一个成分,因为它被
if
语句捕获

那么这可以通过
mixin
extend
或类似的方法解决吗?一个
endif
可以解决这个问题,但是Jade没有任何end关键字,afaik

还是我必须在我的jade文件中使用HTML

中压数据配方

{
    "id": 2,
    "name": "Hellmann's hamburgare med hemmagjort br\u00f6d",
    "description": "I v\u00e4rldens godaste hamburgerbr\u00f6d finns en hemlig ingrediens som ingen av dina g\u00e4ster kommer att kunna lista ut; Hellmann's majonn\u00e4s! Prova sj\u00e4lv och uppt\u00e4ck hur saftiga och l\u00e4ckra Hellmann's hamburgerbr\u00f6d blir!",
    "instructions": "<p>Hamburgerbr\u00f6den:<br\/>1. S\u00e4tt ugnen p\u00e5 200 grader. Blanda j\u00e4sten och vattnet (fingervarmt). Hacka chilin. Blanda sedan i mj\u00f6l, Hellmann\u2019s majonn\u00e4s, timjan, chili, socker och ost. Kn\u00e5da degen p\u00e5 medelhastighet i 10 min, blanda sedan ner&nbsp;&nbsp;&nbsp;salt och blanda i ca tv\u00e5 minuter till. <br\/>2. L\u00e5t degen j\u00e4sa 20-30 min eller till dubbel storlek.<br\/>3. Forma bullar till \u00f6nskad storlek och l\u00e5t j\u00e4sa till dubbla storleken under en duk. <br\/>4. Pensla med lite mj\u00f6lk och toppa med sesamfr\u00f6n. Baka av i ca 10 min eller tills dom f\u00e5tt en fin gyllengul f\u00e4rg.<br\/><br\/>Tillbeh\u00f6r:<br\/>1. Skiva r\u00f6dl\u00f6k och tomat. St\u00e4ll fram en sk\u00e5l med Hellmann's majonn\u00e4s och ett paket med skivad cheddarost.<br\/><br\/>Hellmann's hamburgare:<br\/>1. Stoppa allt utom f\u00e4rsen (Anv\u00e4nd g\u00e4rna h\u00f6grevsf\u00e4rs f\u00f6r b\u00e4sta smakupplevelse) i en matberedare och mixa till det \u00e4r sm\u00e5 bitar kvar av allt. Blanda det med h\u00f6grevsf\u00e4rsen och forma till hamburgare. <br\/>2. Stek burgarna medium och servera med en skiva tomat, l\u00f6kringar, cheddarost och en klick majonn\u00e4s i ett Hellmann\u2019s hamburgerbr\u00f6d.<\/p>",
    "src": "\/uploads\/images\/recipes\/recipe-1.jpg",
    "minutes": "60",
    "author": null,
    "rating": "2.599999999985",
    "ingredients": [
        {
            "id": 1,
            "name": "Vatten",
            "optional": 1,
            "number": 4,
            "unitName": "dl",
            "unitMultiplier": 0.1,
            "categoryId": 1,
            "categoryName": "Hellmann's hamburgerbr\u00f6d"
        },
        {
            "id": 2,
            "name": "Vetemj\u00f6l",
            "optional": 1,
            "number": 500,
            "unitName": "g",
            "unitMultiplier": 1,
            "categoryId": 1,
            "categoryName": "Hellmann's hamburgerbr\u00f6d"
        }
        ...snip...
    ]
}
{
“id”:2,
“名称”:“Hellmann's hamburgare med hemmagjort br\u00f6d”,
“描述”:“我是一位来自德国的芬兰人,我是一位来自德国的年轻人;我是赫尔曼的少校,我是一位来自德国的年轻人!”,
“说明”:“Hamburgerbr\u00f6den:1.S\u00e4tt ugnen p\u00e5 200平地机。Blanda j\u00e4sten och vattnet(fingervarmt)Hacka chilin.Blanda sedan i mj\u00f6l,Hellmann\u2019s majonn\u00e4s,timjan,chili,socker och ost.Kn\u00e5da degen p\u00e5 Medelhastightghet i 10分钟,Blanda sedan ner salt och Blanda i ca tv\u00e5分钟,直到.2.L\u00e5t degen\u00e4sa 20-30分钟,直到被称为storlek.3.bullar,直到storlek为止4.我可以用10分钟的时间在吉隆坡和切达岛上的一个农场工作。Tillbeh\u00f6r:1.Skiva r\u00f6dl\u00f6k och tomat.St\u00E4L med Hellmann's majonn\u00E4L majonn\u00e4s Ochedda.Hellmann's Allare:1tom f\u00e4rsen(Anv\u00e4nd g\u00e4rna h\u00f6grevsf\u00e4rs f\u00f6r b\u00e4sta SMAKUPLEVENSE)我在Matberedea och mixa,直到det\u00e4r sm\u00e5 bitar kvar av allt.Blanda det med h\u00f6grevsf\u00e4rsen och,直到汉堡。2.Stek burgarna中等och服务器,位于skiva tomat、l\u00f6kringar、cheddarost och en klick majonn\u00et Hellmann\u019s汉堡。”,
“src”:“\/uploads\/images\/recipes\/recipe-1.jpg”,
“分钟”:“60”,
“作者”:空,
“评级”:“2.59999985”,
“成分”:[
{
“id”:1,
“名称”:“Vatten”,
“可选”:1,
“数字”:4,
“单位名称”:“dl”,
“单位乘数”:0.1,
“类别”1,
“类别名称”:“Hellmann's hamburgerbr\u00f6d”
},
{
“id”:2,
“名称”:“Vetemj\u00f6l”,
“可选”:1,
“数字”:500,
“单位名称”:“g”,
“单位乘数”:1,
“类别”1,
“类别名称”:“Hellmann's hamburgerbr\u00f6d”
}
剪
]
}
以下是我想在HTML中实现的目标:

<ul class="categories">
    <li class="category">Hellmann's hamburgerbröd
        <ul class="ingredients">
            <li class="ingredient">4 dl Vatten</li>
            <li class="ingredient">500 g Vetemjöl</li>
            <li class="ingredient">50 g Jäst</li>
            <li class="ingredient">100 g Majonnäs</li>
            <li class="ingredient">25 g Strösocker</li>
            <li class="ingredient">10 g Salt Fint</li>
            <li class="ingredient">50 g Riven Ost</li>
            <li class="ingredient">2 msk Timjan</li>
            <li class="ingredient">1 msk Chilipeppar Röd</li>
            <li class="ingredient">0.5 dl Sesamfrö</li>
            <li class="ingredient">1 dl Mjölk</li>
        </ul>
    </li>
    <li class="category">Hellmann's hamburgare
        <ul class="ingredients">
            <li class="ingredient">1 st Gul lök</li>
            <li class="ingredient">250 g Bacon Skivat</li>
            <li class="ingredient">3 klyftor Vitlök</li>
            <li class="ingredient">1 msk Oxfond Buljong</li>
            <li class="ingredient">1.5 msk Rökt paprikapulver</li>
            <li class="ingredient">1 kg Köttfärs - Nöt</li>
        </ul>
    </li>
    <li class="category">Tillbehör
        <ul class="ingredients">
            <li class="ingredient">2 st Rödlök</li>
            <li class="ingredient">200 g Cheddarost i Skivor</li>
            <li class="ingredient">2 st Tomater</li>
            <li class="ingredient">100 g Majonnäs</li>
        </ul>
    </li>
</ul>
    赫尔曼汉堡酒店
    • 4分升瓦滕
    • 500克维特姆焦耳
    • 50克杰斯特
    • 100克马约诺
    • 25克粗棉布
    • 10克盐末
    • 50克每升
    • 2 msk Timjan
    • 1 msk Chilipeppar Röd
    • 0.5分升
    • 1毫升美赞臣
    赫尔曼汉堡
      第一古尔洛克 250克培根煎锅
    • 3克立弗·维特尔克
    • 1 msk Oxfond Buljong
    • 1.5msk Rökt辣椒粉
    • 1千克克特福
    蒂尔贝赫尔
    • 2圣罗德里克
    • 200克切达罗斯i斯奇沃
    • 第二汤姆计
    • 100克马约诺

如上的第一个示例所示,不需要“endif”,因为控制流(至少部分)由缩进表示


所以只要把缩进的部分拉进去就行了。

这里有一种方法,不那么优雅;但现在必须这样做。我将把这个问题留待几天,以防有人有更好的方法来解决这个问题。或者如果我自己找到更好的解决方案

ul.categories
  - var categories = [];
  each ingredient in mv.data.recipe.ingredients
    if !categories.includes(ingredient.categoryId)
      if categories.length > 0
        </ul></li>
      - categories.push(ingredient.categoryId);
      <li class="category">#{ingredient.categoryName}<ul class="ingredients">
    li.ingredient #{ingredient.number} #{ingredient.unitName} #{ingredient.name}
  </ul></li>
ul.categories
-var类别=[];
mv.data.recipe.Components中的每种成分
如果类别。包括(成分。类别ID)
如果categories.length>0

-类别.推送(成分.类别ID);
  • {component.categoryName}
      li.component{component.number}{component.unitName}{component.name}

  • 编辑:完全重写,因为我误解了最初发布的问题

    在Jade之前执行分组

    var categories = {};
    mv.data.recipe.ingredients.forEach(function(ingredient) {
      if (!categories[ingredient.categoryName]) {
        categories[ingredient.categoryName] = [];
      }
      categories[ingredient.categoryName].push(ingredient);
    });
    
    然后将
    类别
    交给Jade。从那里很容易:

    ul.categories
      each categoryName, ingredients in categories
        li.category #{categoryName}
          ul.ingredients
            each ingredient in ingredients
              li.ingredient #{ingredient.number} #{ingredient.unitName} #{ingredient.name}
    

    (这是一种快捷方式,假设没有两个类别具有相同的名称;如果不是这样,您可能希望有一个对象
    categories
    ,将ID映射到类别名称,另一个对象
    categoringedints
    ,将类别ID映射到如上所述的成分数组。逻辑并不复杂。)

    我不认识Jade的可能复制品,但你能不能把缩进的部分拉回来?就像@LightnessRacesinOrbit上的第一个例子,但是
    li
    不会是的孩子