0
正在将一些JavaScript逻辑移动到Angular 2应用程序中。它的一部分涉及一个“格式化程序”函数的本地库[它们不仅仅是格式化,所以管道不是一个选项]当前这些是通过名称(字符串)传递的,接收函数使用窗口[fName]将它们转换为函数引用。Angular 2将函数名称转换为函数参考
所以这是一个格式化功能:
var tickPositionerYMD = function() { ticks=[]; ... complex logic ... return ticks; }
而构建功能:
build(x, y, formatterName) {
...
formatter = window[formatterName];
...
}
而且构建被称为与特定的格式:
build(xData, yData, 'tickPositionerYMD');
在JavaScript中,窗口[]用于创建函数引用。
问题是......在Angular 2组件中做这件事的最好方法是什么?已经看到了一种方法,通过引用窗口来创建服务......这是通过DI传入的。
第二种方法是创建一个给定名称的工厂函数,返回一个函数。
鉴于这些选择,我倾向于使用工厂功能。作为Angular的新手,想知道我是否可能错过了一个更好的方法。