尝试在Typescript中引用全局变量会导致Aurelia项目中的错误

时间:2017-06-27 13:35:42

标签: typescript aurelia

我有这个TypeScript类,我打算用它来引用:ncing项目特定的变量

export class GlobalReferences{
    public baseApiUri:string

    constructor(){
        this.baseApiUri = 'http://localhost:8080/api/';
    }
}

但是,当我尝试在我的一个服务类中引用它时:

import {GlobalReferences} from '../References/GlobalReferences';

@autoinject()
export class CategoriesService{
  http: HttpClient;
  baseApiUrl: string;
  entityCollectionName: string = 'categories';
  constructor(httpClient: HttpClient, references: GlobalReferences) {
    this.http = httpClient;
    this.baseApiUrl = references.baseApiUri;

然后抛出错误。根据您的外观,Webpack抛出的错误是:

   ./References/GlobalReferences.ts中的错误

     

模块构建失败:错误:最终加载器未返回缓冲区或字符串

但是,当您查看Chrome中的错误时,它是:

  

错误[app-router]错误:模块“事务”中找不到视图模型。       在http://localhost:9000/aurelia.bundle.js:3664:15

但是,当我像这样直接分配值时,它可以工作:

this.baseApiUrl = 'http://localhost:8080/api/'

现在的问题是:我如何正确引用全局变量?

2 个答案:

答案 0 :(得分:0)

请试试这些:

File Globalreferences.ts

import { autoinject } from 'aurelia-framework';


@autoinject()
export class GlobalReferences {
    public baseApiUri: string

    constructor() {
        this.baseApiUri = 'http://localhost:8080/api/';
    }
}

您的服务:

export class CategoriesService{
    http: HttpClient;
    baseApiUrl: string;
    entityCollectionName: string = 'categories';
    constructor(httpClient: HttpClient, references: GlobalReferences) {

        this.http = httpClient;
        this.baseApiUrl = references.baseApiUri;
    ....

答案 1 :(得分:0)

我终于找到了问题。我需要在tsconfig.json中添加并设置emitDecoratorMetadata标志为true如果没有它,autoinject()就无法正常工作。