Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度9-无法设置未定义的属性“…”_Angular_Enums - Fatal编程技术网

Angular 角度9-无法设置未定义的属性“…”

Angular 角度9-无法设置未定义的属性“…”,angular,enums,Angular,Enums,最近,我们升级到了Angular 9。然而,我们在运行时面临一个问题。我们禁用了常春藤,因为它阻碍了我们的建设,现在一切似乎都很好。但是,在运行时,我们得到以下错误: Cannot set property "/sites/34" of undefined 这将导致代码中出现一个枚举,如下所示: enum Sites { SITES_ENDPOINT = '/sites/34' } 我真的不确定是什么问题,以及应该如何解决。我是否应该以某种方式重构所有枚举?我应该将它们更改为对象吗?如果

最近,我们升级到了Angular 9。然而,我们在运行时面临一个问题。我们禁用了常春藤,因为它阻碍了我们的建设,现在一切似乎都很好。但是,在运行时,我们得到以下错误:

Cannot set property "/sites/34" of undefined
这将导致代码中出现一个枚举,如下所示:

enum Sites {
  SITES_ENDPOINT = '/sites/34'
}
我真的不确定是什么问题,以及应该如何解决。我是否应该以某种方式重构所有枚举?我应该将它们更改为对象吗?如果您有任何想法,我们将不胜感激,谢谢

更新:

在同一个文件的枚举定义的正下方,我有以下代码:

enum Sites {
  SITES_ENDPOINT = '/sites/34'
}

const object = this;

@Injectable()
export class SitesService implements Http {
  ... 
  constructor() {
    sitesInit()
  }

  get<T>(path: string, opt?): Observable<T> {
    for (const key in Sites) {
      ...
    }
  }
}

function sitesInit() {
  object[Sites.SITES_ENDPOINT] = '/sites/345';
}

我认为您应该将对象和站点迁移到您的服务中。因为object和sitesInit不导出,所以它们不需要是静态的

enum Sites {
  SITES_ENDPOINT = '/sites/34'
}

@Injectable()
export class SitesService implements Http {

  private object = {};

  ... 
  constructor() {
    this.sitesInit()
  }

  get<T>(path: string, opt?): Observable<T> {
    for (const key in Sites) {
      ...
    }
  }

  sitesInit() {
    this.object[Sites.SITES_ENDPOINT] = '/sites/345';
  }
}

您是否尝试删除最后一个?是的,结果相同。在此之前您是否还收到任何其他错误?@geronimo678不幸的是,只有此错误。您是否尝试删除节点模块目录和npm安装?也许这是一个缓存问题。缓存保存在节点_模块中