2012-11-14 140 views
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() 
}); 

現在它在模塊內部對我來說,調用這個 函數的最好方法是什麼,以便每次文檔準備就緒時執行它?

+2

可能你需要導入模塊'Admin.Grid'並調用'Admin.Grid.addGridControls();' –

回答

1

這樣做的一種方法是將函數添加到某個對象。

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

,並調用它像

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

由於@Mike林曾評論說,你需要導入模塊。

在打字稿工作(並假設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/

有一個預tty很好的例子:TypeScript compile AMD modules with required defines和AMD在這裏有更詳細的介紹:http://requirejs.org/docs/whyamd.html

相關問題