0

我在模板中呈现内容时遇到了一些困难。

这似乎是一件容易的事,但无论如何我都做不到。

一些身体可以帮助我吗?

应用视图

<script type="text/x-handlebars" id="application">
<header class="logo"><!-- ... --></header>
<nav><!-- ... --></nav>
<hr class="top" />
{{outlet}}
<hr class="bottom" />
<footer><!-- ... --><div class="clear"></div>
</footer>
</script>

我有路线:

this.resource('exibition', {path: '/exposicoes/:exibition_id'}, function() {
  this.route('artist', {path: '/artistas/:artist_id'});
});

然后链接exposicoes/2显示 id=2 on 的博览会页面application outlet,对吗?

展览视图:

<script type="text/x-handlebars" id="exibition">
  <div class="exibitions">
    <h1>{{#link-to 'exibition'}}{{title}}{{/link-to}}</h1>
    <div class="left">
      <h2>Apresentação</h2>
      {{{text}}}
    </div>
    <div class="right"><h2>Artistas</h2>
      <ul>
        {{#each artist in artists}}
          <li>{{#link-to 'exibition.artist' artist}}{{artist.name}}{{/link-to}}</li>
        {{/each}}
      </ul>
    </div>
  <div class="clear"></div>
</div>
</script>

如何在替换内容ExbitionView的同一区域中打开艺术家链接?{{{text}}}

我尝试为此使用插座,例如:

<div class="left">
<h2>Apresentação</h2>
{{outlet showhere}}
</div>

并在呈现 ExbitionView 时使用 renderTemplate 填充它(并disconnectOutlet清除),但如果用户返回/exibitions/2/artists/2使用/exibitions/2后退按钮甚至页面上的链接,则内容不会再次显示。

4

1 回答 1

1

你非常接近正确的方法。

正如您所建议的,将您的{{text}}车把标签替换为插座,如下所示:

<div class="left">
    <h2>Apresentação</h2>
    {{outlet}}
</div>

然后,添加显式索引模板:

<script type="text/x-handlebars" data-template-name="exhibition/index">
    {{text}}
</script>

连同一个匹配的ExhibitionIndexRoute类来处理为此路线设置模型(其中包含您的文本数据)。

现在你有了一个出口,你的artists路线将正确地渲染到这个出口并替换{{text}},而ExhibitionIndexRoute当你使用后退按钮时,将正确地重新填充数据。

于 2014-02-24T14:36:50.577 回答