首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在角2中以编程方式启用路由跟踪?

如何在角2中以编程方式启用路由跟踪?
EN

Stack Overflow用户
提问于 2017-01-14 00:19:48
回答 1查看 9.9K关注 0票数 15

我知道我可以在enableTracing 2路由器上:

代码语言:javascript
复制
export const routing: ModuleWithProviders = 
    RouterModule.forRoot(routes, { enableTracing: true });

有任何方法可以编程地设置这个值吗?

我有一个config.json文件,它有许多应用程序设置。我希望包含一个布尔属性,该属性可以用于控制跟踪是否启动。我不希望客户有能力修改包含我的路由的文件,但仍然能够打开跟踪以帮助调试没有被测试捕获的边缘案例。

我不介意重新启动应用程序,但不能重新构建应用程序。

更新后,看看路由器的来源,它看上去做不到没有拉请求。对所需改变的简单解释:

  1. 在router.ts中,添加一个称为跟踪的公共属性:布尔值
  2. 在router_module.ts::setupRouter中:
代码语言:javascript
复制
- Change

if (opts.enableTracing) {

router.tracing = opts.enableTracing

代码语言:javascript
复制
- Change the observable:

router.events.subscribe(e => {.

router.events .filter(e => router.tracing) .subscribe(e => {.

  1. 可能需要对跟踪属性添加一些验证。

通过这些更改,您可以导入路由器,然后将router.tracing属性设置为打开和关闭它。

我不知道在没有订阅服务器的情况下发射所有事件与使用过滤订阅发出所有事件之间的性能差别。

EN

回答 1

Stack Overflow用户

发布于 2017-08-31 02:30:55

到目前为止,还没有明确的方法以编程的方式完成它。我们的解决方法是只为local development启用它,这样我们就可以获得所有的细节/异常-堆栈跟踪等等。

代码语言:javascript
复制
let routes = [{path: ..., component : ...}, ...];
RouterModule.forRoot(routes, {
                       enableTracing: /localhost/.test(document.location.host)
                     });
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41645399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档