我是新来的灰烬和我困在一个问题,我无法解决。我有两条路-回家和lhstree。当调用/home时,我需要呈现两个路由,即lhstree应该在home模板中呈现。为此,我使用了名为outlet。效果很好。
但问题是,我需要向lhstree模板提供数据。但是lhstree模板的模型钩子永远不会被调用。我甚至尝试在模型钩子中添加警报消息,但这也从未执行过。下面是我的代码。如有任何帮助,我们将不胜感激。
路由器.js:

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

主页.hbs:
<html>
<head>
</head>
<body>
    Home hbs rendering
    {{outlet 'lhstree'}}
</body>
</html>

主页.js:
export default Route.extend({
    renderTemplate:function()
    {
        this.render();
        this.render('lhstree',{outlet:'lhstree',into:'home'});
    }
});

哈佛商学院:
<ul>
  {{#each model as |player|}}
    <li>{{player}}</li>
  {{/each}}
</ul>

lhstree.js公司:
model() //THIS MODEL IS NEVER CALLED
{
  return ['Player1', 'Player2'];
}

正如我所提到的,lhstree路线的模型钩子从来没有被调用过。因此,在呈现主模板时,不会显示播放器名称Player1和Player2。

最佳答案

虽然rendering a template您只能将模板设置为outlet,而不能设置路由。因此,在您的情况下,将调用lhstree.hbs,但不会调用lhstree.js route。如果要将数据传递到出口中的模板,可以调用设置主路由中的数据。你可以看看这个twiddle

09-20 19:53