繁体   English   中英

Angular2 Route事件

[英]Angular2 Route events

我正在使用Angular2路由,更改路由时需要订阅一个事件。 (即用户点击了其中一个路线链接)。 重要的是该事件应该是在将新视图HTML插入DOM时发生的。

是否有类似onNavigating和onNavigated的事件,所以我可以订阅? 我在stackoverflow上找到了几个示例,并尝试使用它们(请参见下面的构造函数),但这没有用。 有任何想法吗?

/// <reference path="../../typings/tsd.d.ts" />

import {Component, View} from 'angular2/angular2';
import {RouteConfig, Router, RouterOutlet, RouterLink} from 'angular2/router';

@RouteConfig([...])

@Component({
selector: 'app'
})
@View({
directives: [RouterOutlet, RouterLink],
template: `
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
<header class="mdl-layout__header">
  <div class="mdl-layout__header-row">
    <span class="mdl-layout-title">Test</span>
    <div class="mdl-layout-spacer"></div>
    <nav class="mdl-navigation mdl-layout--large-screen-only">
      <a class="mdl-navigation__link" [router-link]="['/routelink1']">routelink1</a>
    </nav>
  </div>
</header>
<main class="mdl-layout__content" style="padding: 20px;">
  <router-outlet></router-outlet>
</main>
</div>
`
})
export class App {
constructor(private router: Router){
      router.subscribe((val) => function(){...}); //here is I need to process HTML
   }
}

我最终有了路由组件的基类,它包含routerOnNavigate覆盖。

import {OnActivate, ComponentInstruction} from 'angular2/router';

export class BaseView implements OnActivate {

  routerOnActivate(next: ComponentInstruction, prev: ComponentInstruction) {
     componentHandler.upgradeDom();
  }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM