akserg / ng2-slim-loading-bar

Angular 2 component shows slim loading bar at the top of the page.
MIT License
358 stars 93 forks source link

When changeDetection is ChangeDetectionStrategy.OnPush component is not working #57

Open ssljivic opened 7 years ago

ssljivic commented 7 years ago

I'm submitting a ...

[x] bug report => check the FAQ and search github for a similar issue or PR before submitting
[ ] support request => check the FAQ and search github for a similar issue before submitting
[x] feature request

Current behavior When used in inside a component with changeDetection: ChangeDetectionStrategy.OnPush loading bar does not work.

Reproduction of the problem Place <ng2-slim-loading-bar></ng2-slim-loading-bar> inside a template of a component with changeDetection: ChangeDetectionStrategy.OnPush. Try start() - progress is updated, but component view is not reflecting that.

What is the expected behavior? SlimLoadingBarComponent component should have changeDetection: ChangeDetectionStrategy.OnPush. It needs to inject private cd: ChangeDetectorRef and at the end of this.service.events.subscribe it should call this.cd.markForCheck();

What is the motivation / use case for changing the behavior? This makes the component usable when changeDetection: ChangeDetectionStrategy.OnPush is used. Note that with redux/ngrx this change detection is very common.

Please tell us about your environment:

ssljivic commented 7 years ago

@akserg any chance this PR can be merged and new release created soon?