TypeScript如何访问其他类

时间:2015-07-30 10:05:40

标签: typescript aurelia

我有一个使用Aurelia框架的项目。我想创建应该跨几个文件访问的global \ static对象。但是当我尝试从不同的文件访问它时,它说我的对象是未定义的。这是它的样子:

FirstFile.ts

export function showA() {
    console.log("Changed a to " + a);
}
export var a = 3;

export class FirstFile {
    public ModifyA() {
        a = 7;
        showA();
    }

它说a = 7.然后我在其他文件中使用它。

SecondFile.ts

import FirstFile = require("src/FirstFile");
export class SecondFile {
    showA_again() {
        FirstFile.showA();
}

我在名为SecondFile.html的视图文件中执行showA_again()

<button click.trigger="showA_again()" class="au-target">Button</button>

当我点击按钮时,我在控制台中看到变量&#34; a&#34;仍然是3。 有没有办法在文件之间存储变量?

1 个答案:

答案 0 :(得分:1)

我建议您将FirstFile注入SecondFile。现在你的代码有一种糟糕的架构气味。

回答你的问题:你可能正在寻找静态(playground sample

export class FirstFile {

    static showA = function() {
        console.log("Changed a to " + FirstFile.a);
    }

    static a = 3;

    public ModifyA() {
        FirstFile.a = 7;
        FirstFile.showA();
    }
}

export class SecondFile {
    showA_again() {
        FirstFile.showA();
    }
}