用组件替换 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}}}
呈现并用上面的部分替换它一.
这可能吗?或者您有更好的方法来实现吗?
使用 outlet
或 yield
看起来都无法实现,因为渲染引擎不会解释 post 内容。
但应该起作用的是在您的内容中使用您提到的占位符,并在您的 post.parsedBody
中用一些可识别的 HTML 占位符替换它。
然后,您可以在 didInsertElement
上创建一个 View
,并调用该视图的 appendTo()
方法以在占位符内呈现 downloads。
可以说写一些 jquery-ish 元素也可以,但我认为在视图树中插入任意元素是可怕的,并且违背了管理视图树的 Ember 方式。
干杯!
我有一个博客。每个 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}}}
呈现并用上面的部分替换它一.
这可能吗?或者您有更好的方法来实现吗?
使用 outlet
或 yield
看起来都无法实现,因为渲染引擎不会解释 post 内容。
但应该起作用的是在您的内容中使用您提到的占位符,并在您的 post.parsedBody
中用一些可识别的 HTML 占位符替换它。
然后,您可以在 didInsertElement
上创建一个 View
,并调用该视图的 appendTo()
方法以在占位符内呈现 downloads。
可以说写一些 jquery-ish 元素也可以,但我认为在视图树中插入任意元素是可怕的,并且违背了管理视图树的 Ember 方式。
干杯!