【问题标题】:DRY partials with Assemble.io front-matter带有 Assemble.io 前端的 DRY 部分
【发布时间】:2014-06-05 01:41:27
【问题描述】:

我想知道如何使用 Assemble 制作可重复使用的 html 部分。

我想做的只是简单地覆盖引用我想要的组件的新模板的前端。见下文:

下面是my-list.hbs(参考my-list.yml)

    ---
    horiz-list: "<%= my-list %>"
    ---
    {{> horiz-list}}

下面是horiz-list.hbs(参考horiz-list.yml)

   <ul class="horiz-list">
     {{#each horiz-list}}
     <li>{{.}}</li>
     {{/each}}
   </li>

Yml 文件只是诸如香蕉、苹果、橙子之类的东西的列表。

我认为这会起作用,但事实并非如此。

注意:到目前为止,我看到的关于可重用组件的唯一一件事是堆栈溢出,它谈到了使用把手扩展页面,但今天早上我找不到,当我读到它时,它没有这似乎不是一个直截了当的过程。

鉴于 assemble 具有一些非常好的功能,我们将不胜感激社区的任何帮助。

谢谢!

【问题讨论】:

  • 您希望发生什么,以及正在发生什么?您希望能够在部分中使用 {{component}} 吗?现在你从my-list得到每件物品在ul里出来了吗?
  • 我希望能够包含像“list”这样的通用项目,然后只需覆盖“list”的默认值,这样苹果、香蕉和葡萄就可以变成胡萝卜、芹菜、生菜,如果我指向不同的数据对象。
  • 为了回答您的其他问题,现在列表中没有任何内容,除非我直接从 horiz-list 部分复制代码。我删除了“组件”,因为它只是元数据并且令人困惑。我认为主要问题是降价生成器不够智能,无法动态链接到数据对象。 IE。该 horiz-list 在包含在另一个块中之前已组装,因此我认为无法将该 html 与数据对象分离。向我解释页面上下文的方式,我认为 assemble 不能做 DRY 组件,除非有一种简单的方法来覆盖

标签: yaml dry templating assemble


【解决方案1】:

好的,所以...试图覆盖这样的数据是行不通的,因为它对如何组合上下文有严格的顺序。

谢天谢地,有人已经为我们所有人解决了这个问题。

这(下)是我所说的“使用把手扩展页面”的意思......它基本上使部分上下文对数据更加灵活。

https://github.com/albogdano/handlebars-helper-mdpartial

还有一个节点包可以使用它来放置所有部分的密钥,并增加更多的灵活性。

https://www.npmjs.org/package/assemble-partial-data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 2021-01-11
    相关资源
    最近更新 更多