1

私は以下を作成しました:

module Admin.Grid {
    export function addGridControls() {

        $('#createLink')
            .click(function () {
                var $link = $(this);
                $link.prop('disabled', true);
                adminDialog($link);
                return false;
            });
    }
}

これは次のように変換されます。

var Admin;
(function (Admin) {
    (function (Grid) {
        function addGridControls() {
            $('#createLink').click(function () {
                var $link = $(this);
                $link.prop('disabled', true);
                adminDialog($link);
                return false;
            });

以前は、モジュール内にないときに、次のように関数を呼び出しました。

$(document).ready(function () {
    "use strict";
    addGridControls()
});

これはモジュール内にあります。ドキュメントの準備が整うたびに実行されるように、この関数を呼び出す最良の方法は何ですか?

4

2 に答える 2

1

これを行う 1 つの方法は、関数を何らかのオブジェクトに追加することです。

var Admin = {};
(function (Admin) {
    (function (Grid) {
        Admin.addGridControls = function () {
....

そして、それを次のように呼び出します

$(document).ready(function () {
    "use strict";
    Admin.addGridControls()
});
于 2012-11-14T06:09:41.330 に答える
0

@Mike Lin がコメントしたように、モジュールをインポートする必要があります。

TypeScript で作業する (および AMD モジュール形式を想定し、モジュールを別のファイルに配置する) と、次のように実行できます。

import g = module('path-to-admin-grid-module');

$(document).ready(() => {
    "use strict";
    g.Admin.Grid.addGridControls();
});

それ以外の場合、同じファイル内で内部モジュールを使用している場合は、次のように簡単です。

$(document).ready(() => {
        "use strict";
        Admin.Grid.addGridControls();
});

後者のケースは、チュートリアル: モジュールの例でうまくプレビューされています: http://www.typescriptlang.org/Playground/

ここに前者のかなり良い例があります: TypeScript は AMD モジュールを必要な定義でコンパイルします

于 2012-11-14T11:53:58.887 に答える