ember.js 添加计算属性到Route.Extend in Ember

oxalkeyp  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(165)

因此,我有一个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总是空的。是否可以在路由中添加一个计算函数?

e5njpo68

e5njpo681#

路由模板的this上下文不是Route示例,而是与该路由相关联的Controller。如果没有显式定义任何控制器,Ember将隐式创建一个。默认情况下,路由只将该控制器上model挂钩的返回值设置为model属性。这在setupController挂钩中完成。
长话短说:您应该使用Ember CLI ember generate controller my-route为您的路由生成一个控制器,并将您的属性移动到该控制器。完成此操作后,它将在路由模板的this上下文中可用。
一般来说,路由只用于序列化和反序列化应用程序状态。所有逻辑都应该移动到控制器或组件(或它们使用的服务)。

相关问题