• 4.6 Routing -- Rendering A Tempalte


    1. route handler一个重要的任务就是渲染合适的模板到屏幕。

    2. 默认的,一个route handler将会呈现模板到最近的父模板。

    app/router.js

    Router.map(function() {
      this.route('post');
    });

    app/routes/post.js

    export default Ember.Route.extend();

    3. 如果你想呈现一个和route handler相关模板之外的模板,实现renderTemplate hook

    app/routes/post.js

    export default Ember.Route.extend({
      renderTemplate() {
        this.render('favoritePost');
      }
    });

    4. 如果你想使用route handler的controller之外不同的controller,传递这个controller的名字到controller选项:

    app/routes/post.js

    export default Ember.Route.extend({
      renderTemplate() {
        this.render({ controller: 'favoritePost' });
      }
    });

    5. Ember允许你命名你的outlets。下面的例子使用了明确的名字指定了两个outelets

    <div class="toolbar">{{outlet "toolbar"}}</div>
    <div class="sidebar">{{outlet "sidebar"}}</div>

    所以如果你想要呈现你的posts到sidebar outlet,使用这样的代码:

    app/routes/post.js

    export default Ember.Route.extend({
      renderTemplate() {
        this.render({ outlet: 'sidebar' });
      }
    });

    6. 上面描述的所有选项可以被一起使用,你想要什么组合都可以:

    app/routes/post.js

    export default Ember.Route.extend({
      renderTemplate() {
        var controller = this.controllerFor('favoritePost');
    
        // Render the `favoritePost` template into
        // the outlet `post`, and use the `favoritePost`
        // controller.
        this.render('favoritePost', {
          outlet: 'post',
          controller: controller
        });
      }
    });

    7. 如果你想要渲染两个不同的模板到一个路由的两个不同的被加载的模板的outlets中:

    app/routes/post.js

    export default Ember.Route.extend({
      renderTemplate() {
        this.render('favoritePost', {   // the template to render
          into: 'posts',                // the template to render into
          outlet: 'post',              // the name of the outlet in that template
          controller: 'blogPost'        // the controller to use for the template
        });
        this.render('comments', {
          into: 'favoritePost',
          outlet: 'comment',
          controller: 'blogPost'
        });
      }
    });
  • 相关阅读:
    学习Javascript闭包(Closure)
    JS的this原理
    页面锚点的设置
    JS异常捕获和抛出
    C++ 指针初始化要注意的地方
    Jupyter Notebook里面使用Matplotlib画图 图表中文乱码问题
    Matplotlib 基本图表的绘制
    Matplotlib 子图的创建
    Matplotlib 图表的样式参数
    Matplotlib 图表的基本参数设置
  • 原文地址:https://www.cnblogs.com/sunshineground/p/5157783.html
Copyright © 2020-2023  润新知