我知道我可以在enableTracing 2路由器上:
export const routing: ModuleWithProviders =
RouterModule.forRoot(routes, { enableTracing: true });有任何方法可以编程地设置这个值吗?
我有一个config.json文件,它有许多应用程序设置。我希望包含一个布尔属性,该属性可以用于控制跟踪是否启动。我不希望客户有能力修改包含我的路由的文件,但仍然能够打开跟踪以帮助调试没有被测试捕获的边缘案例。
我不介意重新启动应用程序,但不能重新构建应用程序。
更新后,看看路由器的来源,它看上去做不到没有拉请求。对所需改变的简单解释:
- Changeif (opts.enableTracing) {
至
router.tracing = opts.enableTracing
- Change the observable:router.events.subscribe(e => {.
至
router.events .filter(e => router.tracing) .subscribe(e => {.
通过这些更改,您可以导入路由器,然后将router.tracing属性设置为打开和关闭它。
我不知道在没有订阅服务器的情况下发射所有事件与使用过滤订阅发出所有事件之间的性能差别。
发布于 2017-08-31 02:30:55
到目前为止,还没有明确的方法以编程的方式完成它。我们的解决方法是只为local development启用它,这样我们就可以获得所有的细节/异常-堆栈跟踪等等。
let routes = [{path: ..., component : ...}, ...];
RouterModule.forRoot(routes, {
enableTracing: /localhost/.test(document.location.host)
});https://stackoverflow.com/questions/41645399
复制相似问题