Build a menu which changes based on url path and params

Course Queries Syllabus Queries 3 years ago

9.58K 2 0 0 0

User submissions are the sole responsibility of contributors, with TuteeHUB disclaiming liability for accuracy, copyrights, or consequences of use; content is for informational purposes only and not professional advice.

Answers (2)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 3 years ago

Is there a good tutorial on how to create a menu in angularjs, the menu should only appear on few pages, for example:

localhost/web (is the page which shows all my projects)
 because I don't have any project selected I don't get a sidemenu

localhost/web/1 (is the main page of a project)
  because I've selected project 1 I can see a sidemenu.

My links in the sidemenu will have the projectID

Project Settings(url) -> localhost/web/1/settings
web.settings({projectID: projectID})

And many others, the sidemenu will show in all that pages where a project id is selected.

0 views
0 shares

profilepic.png
manpreet 3 years ago

 

Keep your menu data in JSON like

// here key in json object is your current url.

   $scope.menus = {
                     "syllabus":[{name:"Chapters",url:"",class:"fa fa-folder-open"},{name:"Q&A",url:"url",class:"fa fa-folder-open"},{name:"syllabus 3",url:"url 1",class:"fa fa-folder-open"}],
                    };


$scope.sub_menus = [];
    $scope.setSubMenu =function(menu){
         $scope.sub_menus = $scope.menus[menu];
    }

Call setSubMenu function whenever you change the route. pass your current route as an argument that will set the current page menu data in to sub_menus array. angular will render this automatically for you.

app.directive('subMenu', ['$compile', function($compile) {
    return {
        restrict: 'EA',
        template: '
'
, compile: function() { return { post: function($scope) { } } } } }]);

0 views   0 shares

No matter what stage you're at in your education or career, TuteeHUB will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.

Similar Forum