Angular2为导入的模块提供通用记录器

时间:2017-04-08 00:35:19

标签: angular typescript module

我想制作一个依赖于模块B的模块A,但让用户通过A提供记录器。

换句话说

# Find and number the pairs and filter out the rows that don't belong
df = df.loc[(df['fname'].isin(df['lname'].shift())) | (df['fname'].isin(df['lname'].shift(-1)))].reset_index(drop = True)
df['pair'] = (df.index / 2.0).astype(int) + 1

# Find the culprit
df['culprit'] = df.loc[(df['fname'] == df['lname'].shift(-1)) | (df['fname'] == df['lname'].shift(1)), 'fname']
df.sort_values(by = ['pair','culprit'], inplace = True)
df.fillna(method = 'ffill', inplace = True)

# Calculate the time difference
df['time_diff'] = df.loc[df['pair'] == df['pair'].shift(1), 'ToE'] - df['ToE'].shift(1)
df['time_diff'] = df['time_diff'].fillna(df['time_diff'].shift(-1) * -1).astype(int)

# Sort
df.sort_values(by = ['pair','time_diff'], inplace = True)

print df[['pair','fname','lname','culprit','time_diff']].to_string(index = False)

可以这样做吗?看起来应该是可能的。也许我错过了一些简单的事情。

1 个答案:

答案 0 :(得分:1)

模块B应该在其providers:[]声明中包含记录器服务。然后,在导入B时,模块A中将提供记录器服务。

服务在整个应用程序中共享。因此,无论您是在子模块还是父模块中声明服务,都无关紧要。它将在整个应用程序中提供。延迟加载模块的例外情况,在这种情况下,您也应该在延迟加载模块的providers声明中添加服务。

您还可以尝试angular2-logger,我们可以将其导入应用程序进行日志记录。