【问题标题】:Render inside in outlet replacing this content在插座中渲染内部替换此内容
【发布时间】:2014-02-22 23:03:26
【问题描述】:

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

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

有人可以帮助我吗?

应用程序视图

<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显示的是application outlet上id=2的博览会页面,对吧?

展览视图:

<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,则内容不会显示再次。

【问题讨论】:

  • 你能把它放在一个jsfiddle中吗?我认为您正在做我最近必须做的事情,但如果我能看到它,您的进展会更容易想象吗?

标签: view ember.js outlet


【解决方案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 将在您使用后退按钮时正确重新填充数据。

【讨论】:

  • 惊人的gravityplanx!你拯救了我的一天!只是一个观察,有必要this.modelFor('exibition');ExibitionIndexRoute 上获取父模型。非常感谢!
猜你喜欢
  • 2015-05-15
  • 2023-01-12
  • 1970-01-01
  • 1970-01-01
  • 2018-04-30
  • 1970-01-01
  • 2015-04-15
  • 2011-07-24
  • 2014-09-03
相关资源
最近更新 更多