我是新来的灰烬和我困在一个问题,我无法解决。我有两条路-回家和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。