1

我需要一种方法来访问 aurelia 制作的对象列表。

具体来说,我有一个名为 current-user.ts 的文件。该文件中包含以下代码:

export var currentUser = null; 

我需要一种方法来访问这个变量的值。最好不调用任何函数。(我正在尝试将用户价值注入一个名为 Dynatrace 的应用程序中。)

我曾尝试浏览windowanddocument.body.aurelia.container类,但找不到获取价值的方法。

4

2 回答 2

4

在具有 Aurelia 行为(自定义元素/自定义属性)的任何元素上,您可以通过以下方式访问底层视图模型:

element.au.controller.viewModel

viewModel通常是自定义元素,如果您在同一个元素上有自定义元素和自定义属性,并且您想要访问自定义属性,您可以这样做

element.au['my-custom-attribute']

获取自定义属性视图模型。

除此之外,在应用程序的根元素中,您可以通过以下方式检索 aurelia 实例

element.aurelia
于 2019-06-07T19:06:52.457 回答
2

如果您想从您的 Aurelia 代码和其他一些应用程序/js 代码中访问该变量,那么使用 window 对象可能是最简单的方法。

您还可以在当前用户类中添加一个 getter/setter 来更新内部属性和窗口对象,例如

class currentUser {
    private _userName: string;
    get userName(): string {
        return this._userName;
    }
    set userName(userName: string) {
        this._userName = userName;
        window['currentUserName'] = userName;
    }
}

let user = new currentUser();
user.userName = 'foo';

// both will output 'foo'
console.log(user.userName);
console.log(window['currentUserName']);
于 2019-06-07T06:58:20.200 回答