2012-11-14 95 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

相关问题