是否可以将jQuery对象作为构造函数参数传递给typescript对象?

时间:2016-11-17 10:32:40

标签: javascript jquery typescript constructor reference

我们正试图弄清楚打字稿的特殊行为。在以下两个代码示例中,jQuery对象应该由typescript更改。在可以正常工作的示例中,我们在实例化typescript类之后通过在方法中使用选择器引擎来引用jQuery对象。这有效:

namespace Company.Module {
    export class GenericService {
        private statefulObject: JQuery;

        public constructor( ) {
        }

        private _toggleObjectState(): void {
            this._statefulObject.toggleClass('text-hide text-success');
        }

        public SetObjectState(): void {
            this.statefulObject = $('#statefulObject');
            _toggleObjectState();
        }

    }
}

而在构造函数中传递jQuery对象不起作用:

namespace Company.Module {
    export class GenericService {
        private statefulObject: JQuery;

        public constructor( _statefulObject: JQuery ) {
            this.statefulObject = _statefulObject;
        }

        private _toggleObjectState(): void {
            this._statefulObject.toggleClass('text-hide text-success');
        }

        public SetObjectState(): void {
            _toggleObjectState();
        }

    }
}

我们想了解为什么会这样。

1 个答案:

答案 0 :(得分:0)

不幸的是,这不是问题。我们的代码不起作用,因为我们引用了一个动态添加到DOM的对象。传递给typescript构造函数时,该对象根本没有加载到DOM中,因此无法对其进行操作。 主持人请随时删除此问题。