title: Angular 5, CanDeactivate hitting once with custom modal
body: <p>Currently running angular 5
  On one of our pages, we want a deactivate guard in place so that if a certain condition on the page is met (they start a test) and they attempt to navigate away without saving, they are presented with a custom modal (a p-dialog from primeNG container a custom dialog).</p>
  
  <p>Here is the deactivate service that we have:</p>
  
  <pre><code>@Injectable()
  export class DeactivateUnsavedChangesService implements 
  CanDeactivate&lt;any&gt; {
  
     constructor() { }
  
     canDeactivate(
      component: any,
      currentRoute: ActivatedRouteSnapshot,
      currentState: RouterStateSnapshot,
      nextState: RouterStateSnapshot
     ): Observable&lt;boolean&gt;|Promise&lt;boolean&gt;|boolean {
       return component.confirm() ;
     }
  }
  </code></pre>
  
  <p>Here is the parent components confirm method:</p>
  
  <pre><code>  confirm() {
      return new Promise&lt;boolean&gt;(resolve =&gt; {
        const subject = new Subject&lt;boolean&gt;();
        this.dcComponent.displayExitModal = true;
        this.dcComponent.subject = subject;
  
        return subject.asObservable();
  
      });
    }
  </code></pre>
  
  <p>I am accessing the child component (that which houses the modal itself) via a ViewChild</p>
  
  <pre><code>@ViewChild (DynamicClassroomComponent) dcComponent: DynamicClassroomComponent;
  </code></pre>
  
  <p>In the template, I am binding the 'subject' to an input field of the child component.  In that child component, I am binding that to the modal itself so it can do one of the following:</p>
  
  <pre><code>this.subject.next(true);
  </code></pre>
  
  <p>or</p>
  
  <pre><code>this.subject.next(false);
  </code></pre>
  
  <p>The issue is that the modal is showing once on a route change and never again and no matter what I select in the modal, it just closes and no route is taken.  I'm not 100% sure I'm doing this right so my approach may be totally incorrect.  Any help would be appreciated.  Thanks!</p>