Angular2 RC1 - 调用组件时会触发哪个事件?
Angular2 RC1 - Which event is fired whenever a component is called?
我有一个产品组件,访问下面 url 显示产品列表:
/products
产品页面有分页,因此用户可以单击页面末尾显示的 Next/Previous 链接。单击第一页上的“下一步”会将用户移动到下方 url:
/products/2
在我的组件中,我实现了 ngOnInit,它根据我们当前所在的页面获取产品列表。
在 Beta 版本中,我使用 CanReuse 挂钩使其工作。但是在当前版本中,当我单击下一页时,由于在第 2 页上未调用 ngOnInit,因此它不会获取产品列表。
我在某处看到 CanReuse 将在未来的更新中添加,我想知道有没有更好的方法来实现这一点?
免责声明:我的英语很糟糕。
我做了一些测试,当你第二次输入或第三次输入时触发的事件是AfterViewInit
你可以这样实现:
import {Component,AfterViewInit } from '@angular/core';
import {DataTableComponent} from '../../../shared/data-table/datatable.component.ts';
@Component({
template: require('./consultorios-list.component.html'),
styles: [require('./consultorios-list.component.scss')],
directives: [DataTableComponent]
})
export class ConsultoriosListComponent implements OnInit {
private datos:any = {
titles: null, data: null
};
ngAfterViewInit(){
console.log('I was printed when you enter to this route is showed c:');
}
constructor() {
}
}
享受我的朋友。
您可以注入 Router
并在您可以订阅的组件中使用它的 changes
EventEmitter
。
然后您可以使用 location.path()
来读取当前路径,例如使用 switch case
。像这样:
...
constructor(private _location:Location, private _router:Router) {
_router.changes.subscribe( () => {
switch(this._location.path()){
case '/products':
// do some stuff...
break;
case '/products/2':
// do something different...
break;
default:
// do nothing..
}
});
我有一个产品组件,访问下面 url 显示产品列表:
/products
产品页面有分页,因此用户可以单击页面末尾显示的 Next/Previous 链接。单击第一页上的“下一步”会将用户移动到下方 url:
/products/2
在我的组件中,我实现了 ngOnInit,它根据我们当前所在的页面获取产品列表。
在 Beta 版本中,我使用 CanReuse 挂钩使其工作。但是在当前版本中,当我单击下一页时,由于在第 2 页上未调用 ngOnInit,因此它不会获取产品列表。
我在某处看到 CanReuse 将在未来的更新中添加,我想知道有没有更好的方法来实现这一点?
免责声明:我的英语很糟糕。
我做了一些测试,当你第二次输入或第三次输入时触发的事件是AfterViewInit
你可以这样实现:
import {Component,AfterViewInit } from '@angular/core';
import {DataTableComponent} from '../../../shared/data-table/datatable.component.ts';
@Component({
template: require('./consultorios-list.component.html'),
styles: [require('./consultorios-list.component.scss')],
directives: [DataTableComponent]
})
export class ConsultoriosListComponent implements OnInit {
private datos:any = {
titles: null, data: null
};
ngAfterViewInit(){
console.log('I was printed when you enter to this route is showed c:');
}
constructor() {
}
}
享受我的朋友。
您可以注入 Router
并在您可以订阅的组件中使用它的 changes
EventEmitter
。
然后您可以使用 location.path()
来读取当前路径,例如使用 switch case
。像这样:
...
constructor(private _location:Location, private _router:Router) {
_router.changes.subscribe( () => {
switch(this._location.path()){
case '/products':
// do some stuff...
break;
case '/products/2':
// do something different...
break;
default:
// do nothing..
}
});