在我的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
, …