gpt4 book ai didi

ember.js - 新的 ember.js 路由 : how to connect outlets?

转载 作者:行者123 更新时间:2023-12-03 23:28:39 24 4
gpt4 key购买 nike

我很困惑如何使用新的路由器方法连接 socket 。

index.html:

...
<script type="text/x-handlebars" data-template-name="application">
<h4>The application handelbar</h4>
{{! outlet 1}}
{{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="index">
<h4>The index handelbar</h4>
{{! outlet 2 and 3}}
{{outlet nav}}
{{outlet main}}
</script>

<script type="text/x-handlebars" data-template-name="main">
<h4>The main handelbar</h4>
</script>

<script type="text/x-handlebars" data-template-name="nav">
<h4>The nav handelbar</h4>
</script>
...

app.js:
...
App.Router.map(function(match) {
this.resource("index", { path: "/" });
this.route("test");
});

App.IndexController = Ember.Controller.extend({
});

App.IndexView = Ember.View.extend({
templateName: 'index'
});
...

此代码呈现 outlet-1。

问题:
  • 为什么要渲染 outlet-1? outlet-1 和“index”是如何连接的?
  • 如何将导出 2 和 3 连接到同一个“索引”站点?

  • 谢谢

    最佳答案

    您需要使用 renderTemplate 方法(或 renderTemplates 方法,取决于您的构建)在路由处理程序中指定这些内容。

    你没有看到的是 Ember 已经为你设置了很多默认值。事实上,Ember 设置的默认值允许您省略整个路由处理程序。

    App.Router.map(function(match) {
    this.resource("index", { path: "/" });
    this.route("test");
    });
    App.IndexRoute = Ember.Route.extend({
    renderTemplate: function() {
    this.render();
    /* this is the default, it will basically render the
    default template, in this case 'index', into the
    application template, into the main outlet (i.e. your
    outlet 1), and set the controller to be IndexController.
    */

    }
    });

    你想要的是在 renderTemplate 函数中渲染额外的模板,像这样:
      renderTemplate: function() {
    this.render("index");
    // this renders the index template into the primary unnamed outlet.
    this.render("navtemplate", {outlet: "nav"});
    // this renders the navtemplate into the outlet named 'nav'.
    this.render("main", {outlet: "main"});
    // this renders the main template into the outlet named 'main'.
    }

    希望这可以帮助。

    关于ember.js - 新的 ember.js 路由 : how to connect outlets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14365749/

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