0

我在 typescript 中的类构造函数中向 ID 添加了一个更改事件,并且在该更改事件中我想访问一个类函数,但是在事件内部时,“this”似乎不是类。如何从那里访问该功能?

export class Document_Uploads {

        constructor() {
            $("#FormBrokerReferenceID").change(function () {
                 = $("#FormBrokerReferenceID").val();

                //inside this event it does not work           
                this.Validate()

            });

             // works here inside constructor
            this.Validate()

        }

    Validate() {
            var valid: bool = true;
             some other code
    }


}
4

1 回答 1

5

您的问题有两种解决方案。

首先是让 TypeScript 为您处理范围:

    constructor() {
        $("#FormBrokerReferenceID").change( () => {
             = $("#FormBrokerReferenceID").val();

            // Should now work...         
            this.Validate()

        });

         // works here inside constructor
        this.Validate()
    }

第二个是自己处理它,尽管这是手动执行 TypeScript 会为您做的事情 - 值得知道它不是魔术。如果您不想覆盖this事件中的含义,但也想访问“外部” this,这可能很有用。

    constructor() {
        var self = this;

        $("#FormBrokerReferenceID").change(function () {
             = $("#FormBrokerReferenceID").val();

            // Should now work...         
            self.Validate()

        });

         // works here inside constructor
        this.Validate()
    }
于 2013-03-06T21:21:30.933 回答