在我的Angular 2应用程序中,我试图禁用routerLink而没有任何成功.我试图处理事件上的click事件click(使用event.preventDefault()和event.stopPropagation()),但它不起作用.
如何禁用routerLink?
在我的应用程序中,我有一些通过的方式进行通信的组件 EventService.
@Injectable()
export class EventService {
public myEvent: EventEmitter<any> = new EventEmitter();
constructor() {}
}
Run Code Online (Sandbox Code Playgroud)
EmitterComponent当单击按钮时,此服务将注入一个发出事件的服务
@Component({
selector: 'emitter',
template: `<button (click)="onClick()">Click me</button>`,
})
export class EmitterComponent {
constructor(private eventService:EventService) {}
onClick() {
this.eventService.myEvent.emit();
}
}
Run Code Online (Sandbox Code Playgroud)
并且在ReceiverComponent订阅事件中并且对于每个收到的事件增加一个计数器
@Component({
selector: 'receiver',
template: `Count: {{count}}`,
})
export class ReceiverComponent {
public count = 0;
constructor(private eventService:EventService) {
this.eventService.myEvent.subscribe(() => this.count++;);
}
}
Run Code Online (Sandbox Code Playgroud)
该应用程序有多个视图(在这个例子中只有两个):PageA和PageB.EmitterComponent并且ReceiverComponent在PageA.每次进入PageB并返回时PageA, …