如何访问 Handlebars 中的 Ember 路线变量?

How do I access Ember Route variables in Handlebars?

我今天注意到了一些有趣的事情。

如果我在控制器中创建一个变量

export default Ember.Controller.extend({
   controllerFoo: "Cut"
});

然后我在我的路线中创建了一个类似的变量

export default Ember.Route.extend({
    routeFoo: "Copy"
});

当我在 .hbs 中打印它时:

controllerFoo:{{controllerFoo}}
<hr>
routeFoo: {{routeFoo}}

只有 controllerFoo 会显示。我认为 Route 和 Controller 变量可以互换使用。如果我想使用路由变量,我该怎么做?或者这是不好的做法?

模板上下文是控制器,因此大部分状态将由控制器维护。如果你需要将一些 属性 从路由传递到模板,那么你需要使用路由的 model 钩子或使用路由的 setupController 钩子并在控制器中设置所需的属性。