gpt4 book ai didi

ember.js - 在动态位置插入部分/组件

转载 作者:行者123 更新时间:2023-12-02 06:03:25 24 4
gpt4 key购买 nike

我创建了一个博客,其中有一个 {{downloads}}显示属于帖子的下载的组件。
目前我渲染下面的下载{{{post.content}}} .

我想要一个带有 post.content 的特殊字符串喜欢 [postDownloads] 并渲染 {{downloads}}那里。

这是可能的还是有其他方法可以解决这个问题?

我整理了一个简单的例子来说明我正在尝试解决的一个用例:http://emberjs.jsbin.com/raresalihu/3/edit

App = Ember.Application.create();

App.IndexRoute = Ember.Route.extend({
model: function() {
return {
title: "cool post title",
content: "<p>Lorem ipsum</p>[postDownloads]<p>coool stuff</p>",
downloads: [ { src: "http://example.com/cool-stuff.zip", name: "cool stuff"},
{ src: "http://example.com/cooler-stuff.zip", name: "cooler stuff"}]};
}
}
);

这是HTML:
<script type="text/x-handlebars">
<h2>My Blog example</h2>
{{outlet}}
</script>

<script type="text/x-handlebars" id="components/down-loads">
<h3>Downloads</h3>
{{#each download in downloads}}
<p><a {{bind-attr href=download.src}}>{{download.name}}</a></p>
{{/each}}
</script>

<script type="text/x-handlebars" data-template-name="index">
{{#with model as post}}
<h3>{{post.title}}</h3>
<div>{{{post.content}}}</div>
{{down-loads downloads=post.downloads}}
{{/with}}
</script>

最佳答案

似乎在理想的世界中,您可以获得更结构化的表示,但如果您有信心可以明确地找到占位符(并且您相信它位于合理的位置),您可以将 HTML 拆分为在那一点上一半,并在注入(inject)内容的两侧呈现 HTML 的两半。

您可以很容易地将该过程提取到一个组件中;看看this JSBin例如。使用那里的组件,在上面的示例中,您可以执行以下操作:

<script type="text/x-handlebars" data-template-name="index">
{{#with model as post}}
<h3>{{post.title}}</h3>
{{#replace-sigil body=post.content sigil='[postDownloads]'}}
{{down-loads downloads=post.downloads}}
{{/replace-sigil}}
{{/with}}
</script>

关于ember.js - 在动态位置插入部分/组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com