[英]How to call TypeScript Static Method from window element?
I'm converting some of our application from JavaScript to TypeScript, and have a JavaScript method that execute functions via the window element by the function name. 我正在将我们的一些应用程序从JavaScript转换为TypeScript,并具有一个JavaScript方法,该方法通过函数名称的window元素执行函数。
We are having trouble finding and executing the correct function from the TypeScript produced JavaScript. 我们无法从TypeScript产生的JavaScript中找到并执行正确的功能。
TypeScript Code: TypeScript代码:
class ItemSelector {
public static preProcesssData(data: any): any {
//Do Stuff
return data;
}}
Produced JavaScript 产生的JavaScript
var ItemSelector = (function () {
function ItemSelector() {
}
ItemSelector.preProcesssData = function (data) {
//Do Stuff
return data;
};
return ItemSelector;}());
JavaScript Calling Function JavaScript调用函数
function callFunctionByName(funcName,data) {
var fn = null;
/*
* If function has a scope (namespace) like this: "myScope.myFunction"
*/
if (funcName.indexOf(".") != -1) {
var ns = funcName.split(".");
if (ns && ns.length == 2) {
fn = window[ns[0]][ns[1]];
} else {
cl("Function with multiple scopes not supported: " + funcName);
}
}
/*
* Else function is just a plain string with no scope.
*/
else {
fn = window[funcName];
}
//fn is always undefined
if (typeof fn === "function") { fn(data);}}
Example Call 呼叫范例
callFunctionByName("ItemSelector.preProcessData",{});
window["ItemSelector"]["preProcessData"] returns undefined. window [“ ItemSelector”] [“ preProcessData”]返回未定义。
window["Itemselector.preProcessData"] also returns undefined. window [“ Itemselector.preProcessData”]也返回未定义。
I'm sure this is a very easy one, but I just can't figure it out. 我敢肯定这是很简单的,但是我只是想不通。 Thanks, Matt 谢谢,马特
你拼Process
为Processs
在你的类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.