我有一个使用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。 有没有办法在文件之间存储变量?
答案 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();
}
}