在 Ember 4 适配器中覆盖计算的 属性

Override computed property in Ember 4 adapter

在 Ember / JavaScript 的“新”class 风格中(至少对我来说是新的),我无法调整旧教程来设置计算 属性 在我的 JSONAPIAdapter.

export default class ApplicationAdapter extends JSONAPIAdapter {
  @service session;

  headers: computed('session.isAuthenticated', 'session.data.authenticated.token', function() {
    if (this.session.isAuthenticated) {
      return {
        Authorization: `Bearer ${ this.session.data.authenticated.token }`,

结果

$TMPDIR/embroider/b3d2a6/adapters/application.js/application.js: Unexpected token (8:9)

   6 |   @service session;
   7 |
>  8 |   headers: computed('session.isAuthenticated', 'session.data.authenticated.token', function() {

文档 ( https://api.emberjs.com/ember-data/4.3/classes/JSONAPIAdapter/properties/headers?anchor=headers ) 暗示这应该有效,但我认为 @service session 行把事情搞砸了。

在 2022 年设置 headers 属性 和 Ember 4 class 的正确方法是什么?

不确定您看到的是什么错误,但您应该可以将其替换为 getter

get headers() {
  if (this.session.isAuthenticated) {
    return {
      Authorization: `Bearer ${ this.session.data.authenticated.token }
    }
  }
}

你可以看到一个工作示例in our addapter