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

时间:2015-03-20 20:31:19

标签: ember.js ember-cli handlebars.js htmlbars

我有一个博客。每篇博文都可以有多个下载。对于下载,我创建了一个组件downloads 目前我在每个帖子的末尾渲染它们,如下所示:

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

我希望能够在帖子内容本身中编写类似[downloads]的内容(仅通过{{{post.parsedBody}}}呈现,并将其替换为与上述内容类似的部分。

这是可能的还是你有更好的方法来实现这个目标?

1 个答案:

答案 0 :(得分:1)

使用outletyield无法实现这一点,因为渲染引擎不会解释帖子内容。

应该使用的是在您的内容中添加占位符,就像您提到的那样,并将其替换为post.parsedBody中的某个可识别的HTML占位符。 然后,您可以在didInsertElement上创建View,并调用该视图的appendTo()方法,以在占位符内呈现下载

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

干杯!