0

在 ember 网站的教程页面上有几个广泛的代码示例,它们都以特定方式失败。由于这应该是表面上用于指导新手如何在 ember 中编码的原型 ember 代码,所以我不知所措。知道ember的人可以看看代码。(一个例子就在我列出的那个书签的正上方,包括模板和 js。

具体来说,主根页面模板有一个仅由子页面写入的插座“页脚”,但是当您导航回主页(根/索引)页面时,该插座仍然显示来自子页面的信息,它不应该。同样的事情发生在名为“traversal”的模板上,其出口仅由子页面写入,但当您导航回根目录时,该出口仍会在其中显示信息。

我确实在 API 文档中遇到了一个函数disconnectOutlet,但它说您几乎不必使用它,而且它不在示例代码中。我试过了——显然实际上已经不在 api 中了。

如果你想运行上面的代码,你需要从 ember 站点获得以下内容:

  <link rel="stylesheet" href="css/style.css">
  <script src="js/libs/jquery-1.7.2.min.js"></script>
  <script src="js/libs/handlebars-1.0.rc.1.js"></script>
  <script src="js/libs/ember-1.0.pre.min.js"></script>
4

1 回答 1

2

正如你所提到的,disconnectOutlet是由这个pull request添加的。您可以使用它从控制器中删除 outletView(按名称)。例如,myOutletViewName在退出某个路由时从 applicationController 中移除:

  aRoute: Ember.Route.extend({
    exit: function(router) {
      router.applicationController.disconnectOutlet('myOutletViewName')
    }
  })

请注意,如果您{{outlet}}在模板中使用,而不指定名称,则默认名称是view这样的:

router.applicationController.disconnectOutlet('view')
于 2012-10-21T20:06:55.820 回答