角度 2 路由事件
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
}
}
我最终为我的路由组件提供了基类,它包含routerOnNaving覆盖。
import {OnActivate, ComponentInstruction} from 'angular2/router';
export class BaseView implements OnActivate {
routerOnActivate(next: ComponentInstruction, prev: ComponentInstruction) {
componentHandler.upgradeDom();
}
}
相关文章:
- React/flux - 子组件用户事件 - 是否应通过调度程序路由所有内容
- 触发特定路由的其他指令,如ng-init或事件,如stateChangeStart
- Ember.js处理View事件后转换到路由
- 使用纸质按钮点击事件进行路由
- 如何使用 Express 4 路由中的 socket.io 向连接的套接字发出事件
- 主干路由器导航到../#/<路由>而不触发路由器事件.如何
- AngularJS$locationChangeStart事件取消路由导航
- 使用聚合物路由事件
- 角度 2 路由事件
- 无法停止 AngularJS 中路由控制器之间的事件传播
- 如何在触发该功能之前停止骨干路由事件
- 将onclick事件从嵌入的SVG路由到更高级别
- 公共EmberJS路由事件
- 如何添加事件处理程序来路由Ember.js中显示的事件
- 如何从路由文件在socket.io中发出事件
- Backbone.js-是否有一种方法可以确定页面加载时是否触发了路由事件
- Canjs:触发当前页面的路由事件
- 在路由中绑定事件
- 在Knockout中路由事件
- 如何允许子组件在父组件之前对路由事件做出反应