TypeScript - 在类中引用jQuery

时间:2015-06-21 01:03:33

标签: jquery visual-studio-2013 typescript1.4 nw.js

获取以下错误"未捕获的ReferenceError:$未定义"。我非常理解错误,jQuery在我的课堂上并没有得到认可。我不明白的是如何确保它被拿起来。

这是我到目前为止所得到的:

./ app.ts

/// <reference path="references.ts"/>
import Layout = require("./classes/Layout");

class Brooklyn {
    elementId: string;

    constructor(elementId: string) {
        this.elementId = elementId;
    }

    setupLayout() {
        console.log("building layout");
        var layout = new Layout(this.elementId);
        layout.build();
    }
}

./ references.ts

/// <reference path="dfiles/jquery.d.ts"/>
/// <reference path="dfiles/jqueryui.d.ts"/>
/// <reference path="dfiles/jquery.ui.layout.d.ts"/>
/// <reference path="dfiles/node.d.ts" /> 

/// <reference path="classes/Layout.ts" /> 

./类/ Layout.ts

/// <reference path="../dfiles/jquery.d.ts"/>

    class Layout {
        static layoutOuter: JQueryLayout;
        elementId: string;
        westSelector: string;
        eastSelector: string;

        constructor(elementId: string) {
            this.elementId = elementId;
        }

        build() {
            console.log("init layout");
            this.westSelector = "body > .ui-layout-west"; // outer-west pane
            this.eastSelector = "body > .ui-layout-east"; // outer-east pane


            Layout.layoutOuter = $(this.elementId).layout();  // Error from this line
        }
    }

export = Layout;

我已将jquery.d.ts引用添加到Layout.ts文件中,但这也没有帮助,也没有将jQuery作为引用传递给类。每个单独的类如何访问jQuery?

1 个答案:

答案 0 :(得分:0)

我的问题是使用外部TypeScript模块。 Nw.js使用节点require来加载节点模块,而不是像RequireJS那样的客户端脚本。使我的TypeScript模块内部解决了这个问题。

还了解到外部TypeScript模块与主应用程序不共享相同的上下文(现在相当明显......),这就是jquery未被识别的原因。