因此,我有一个main.js文件,它是一个路由:
import user from 'config/user';
import { computed } from '@ember/object';
export default Route.extend(SomeMixin, {
firstName: computed(function () {
return user.firstName;
},
}),
在我hbs文件中我有{{firstName}}
在hbs文件中firstName总是空的。是否可以在路由中添加一个计算函数?
1条答案
按热度按时间e5njpo681#
路由模板的
this
上下文不是Route
示例,而是与该路由相关联的Controller
。如果没有显式定义任何控制器,Ember将隐式创建一个。默认情况下,路由只将该控制器上model
挂钩的返回值设置为model
属性。这在setupController
挂钩中完成。长话短说:您应该使用Ember CLI
ember generate controller my-route
为您的路由生成一个控制器,并将您的属性移动到该控制器。完成此操作后,它将在路由模板的this
上下文中可用。一般来说,路由只用于序列化和反序列化应用程序状态。所有逻辑都应该移动到控制器或组件(或它们使用的服务)。