用组件替换 HTMLbars/Handlebars 表达式中的字符串

Replace string in HTMLbars/Handlebars expression with component

我有一个博客。每个 blog-posts 可以有多个下载。对于下载,我创建了一个组件 downloads 目前我在每个 post 的末尾呈现它们,如下所示:

{{#each download in sortedDownloads }}
  <p>
    <a class="dl-button" {{ action "incDownload" download }}>
      {{ download.name }} ({{ download.size}}MB)
    </a> - {{ download.downloadcount }} Hits
  </p>
{{/each}}

我希望能够在 post 内容本身中编写类似 [downloads] 的内容(它只是通过 {{{post.parsedBody}}} 呈现并用上面的部分替换它一.

这可能吗?或者您有更好的方法来实现吗?

使用 outletyield 看起来都无法实现,因为渲染引擎不会解释 post 内容。

但应该起作用的是在您的内容中使用您提到的占位符,并在您的 post.parsedBody 中用一些可识别的 HTML 占位符替换它。 然后,您可以在 didInsertElement 上创建一个 View,并调用该视图的 appendTo() 方法以在占位符内呈现 downloads

可以说写一些 jquery-ish 元素也可以,但我认为在视图树中插入任意元素是可怕的,并且违背了管理视图树的 Ember 方式。

干杯!