Search code examples
durandaldurandal-navigation

DurandalJS navigations events


I have a Durandaljs application. I want to have a back button in shell view that should be hidden depends on which view is activated now. What is the easiest way to detect navigation event in shell viewmodel to change back button visibility state?


Solution

  • Basic Solution

    You can check what view is activated using router via router.navigationModel()[x].isActive

    Application Messaging

    You can in the Activation event of ViewModel use Durandal Application-Wide Messaging

    In view model in Activate function include

    app.trigger('viewNavigated', isBackVisable);
    

    While in shell view model

    app.on('viewNavigated').then(function(isBackVisable)
    {
         if(isBackVisable)
              MakeButtonBackVisable();
    });