2015-04-01 66 views
2

我使用Angularjs与Google的材质角库https://material.angularjs.org/怎么办下拉项导航栏上用材料的角度

他们在他们的网站导航栏下拉的项目,但我找不到任何物体或示例做我自己的一个。

我该如何做到这一点?

谢谢!

+0

Follw此链接https://github.com/angular/material/blob/master/docs/README.md它可以帮助你在本地运行角度材料源代码。它有助于祝你好运! – Prasad 2015-07-02 10:17:10

回答

1

你可以使用下面的代码角边料菜单

标记

<md-sidenav layout="column" class="md-sidenav-left md-whiteframe-z2" 
md-component-id="left" md-is-locked-open="$mdMedia('gt-md')"> 

    <md-list> 
    <md-item ng-repeat="item in menu"> 
    <a> 
     <md-item-content md-ink-ripple layout="row" layout-align="start center" ng-click="$parent.navigate(item.icon)"> 
     <div class="inset"> 
      <ng-md-icon icon="{{item.icon}}" ></ng-md-icon> 
      <md-tooltip md-direction="right">{{item.title}}</md-tooltip> 
     </div> 

     </md-item-content> 
     <md-divider></md-divider> 
    </a> 
    </md-item> 
    <md-divider></md-divider> 

    <md-item ng-repeat="item in admin"> 
    <a> 
     <md-item-content md-ink-ripple layout="row" layout-align="start center"> 
     <div class="inset"> 
      <ng-md-icon icon="{{item.icon}}"></ng-md-icon> 
      <md-tooltip md-direction="right">{{item.title}}</md-tooltip> 
     </div> 

     </md-item-content> 
    </a> 
    </md-item> 
</md-list> 
</md-sidenav> 

Plunkr

我可以给你的想法有关md-select这将是充当下拉。

标记

<body data-ng-controller="MainCtrl"> 
    <h1>md-select demo</h1> 
    <md-select ng-model="widgetType" > 
     <md-option ng-value="t.title" data-ng-repeat="t in widget">{{ t.title }}</md-option> 
    </md-select> 
</body> 

控制器

var app = angular.module('DemoApp', ['ngMaterial']); 

app.controller('MainCtrl', function($scope) { 
    $scope.widget = [{ 
    "id": "line", 
    "title": "Line" 
    }, { 
    "id": "spline", 
    "title": "Smooth line" 
    }, { 
    "id": "area", 
    "title": "Area" 
    }, { 
    "id": "areaspline", 
    "title": "Smooth area" 
    }]; 

    //init 
    $scope.widgetType = 'Line'; 

}); 

Working Plunkr

+0

谢谢!真的有帮助:) – jyDev 2015-04-03 09:57:49

+0

@jyDev欢迎您..很高兴帮助您:) – 2015-04-03 10:00:33

+0

这不是下拉菜单的确(我没有downvote) – 2015-04-23 12:08:17

1

“创建自己的ANGULAR材料导航菜单”

我希望这个博客可以帮助你,please visit here

见工作plunkr

1

就在这种情况下,别人的土地,这将是值得的,要知道,这可相当容易地与角ngHide的帮助下完成和ngShow指令。任何装饰,如图标,样式,动画等可以添加到它,但功能是非常简单,如果你这样做:

这是您的模板为单一菜单层(切换项目和子菜单项目)

<md-button ng-click="menuIsOpen = !menuIsOpen" layout="row"> Trigger</md-button> 
<ul ng-init="menuIsOpen= false" ng-show="menuIsOpen"> 
    <md-menu-item ng-repeat="item in data"> 
     <md-button> 
      <div layout="row" flex=""> 
       <a ui-sref="{{item.link}}" class=""> 
        <p flex=""><i class="fa fa-{{item.icon}}"></i> {{item.title}}</p> 
       </a> 
      </div> 
     </md-button> 
    </md-menu-item> 
</ul> 

而且这里是它可能是你见过的最简单的控制器,虽然这将是如果它是在它自己的JSON文件更好;)

.controller('ListBottomSheetCtrl', function($scope) { 
    $scope.data = [{ 
     title: 'Home', 
     icon: 'home', 
     link: '/page1/' 
    }, { 
     title: 'Email us', 
     icon: 'envelope', 
     link: '/page2/' 
    }, { 
     title: 'Profile', 
     icon: 'user', 
     link: '/page3/' 
    }, { 
     title: 'Print', 
     icon: 'print', 
     link: '/page4/' 
    }, ]; 

}) 

您可能找到它工作here

请参阅!简单!没有必要疯狂,容易编程。为了销售的可维护性;)

0

一个简单的,我自己做了这个。使用Angular材质库

你可以只使用Md列表项和几个指令,如ng-show,ng-class。

在这里我跟踪控制器中的活动菜单项。

https://github.com/mtushar091/angularjs_sideMenu

Sidemenu.png

 <md-list ng-repeat="menu in menus" class="list_no_padding manu_container"> 

     <!-- MAIN MENU ITEMS --> 
     <md-list-item 
      ng-click="parentMenuAction(menu)" 
      class="menu_item" 
      ng-class="{active: menu === activeMenu}"> 
       <md-icon md-svg-icon="res/icons/{{menu.icon}}"></md-icon> 
       <p>{{menu.name}}</p> 
       <span flex></span> 
       <md-icon 
        md-svg-icon="res/icons/ic_keyboard_arrow_right_24px.svg" 
        ng-click="parentMenuAction(menu)" 
        ng-show="menu.items.length != 0" 
        class="nav_icon md-toggle-icon" 
        aria-hidden="true"> 
       </md-icon> 
     </md-list-item> 
     <!-- SUB MENU ITEMS --> 
     <md-list-item 
      ng-repeat="item in menu.items" 
      ng-click="chieldMenuAction(item)" 
      ng-show="menu === activeMenu" 
      class="sub_menu_item animate-show-hide" 
      ng-class="{'sub_active': item === activeSubMenu}"> 
       <p>{{item.name}}</p> 
     </md-list-item> 

    </md-list> 

// Init Default Active Item... 
$scope.activeMenu = { }; 
$scope.activeSubMenu = { }; 

// Sidenav Toggle 
$scope.toggle = function() { $mdSidenav('left').toggle(); }; 

$scope.menus = [ 
    { 
     icon: "ic_apps_24px.svg", 
     name: "Tables", 
     state: "home.table", 
     items : [{name : 'Submenu 1'}, {name : 'Submenu 2'}, {name : 'Submenu 2'}] 
    }, 
    { icon: "ic_attach_file_24px.svg", name: "Reminders", items : [] }, 
    { 
     icon: "ic_archive_24px.svg", 
     name: "Inspriation", 
     items : [{name : 'Submenu 1'}, {name : 'Submenu 2'}, {name : 'Submenu 2'}] 
    }, 
    { 
     icon: "ic_apps_24px.svg", 
     name: "Notes", 
     items : [{name : 'Submenu 1'}, {name : 'Submenu 2'}, {name : 'Submenu 2'}] 
    }, 
    { icon: "ic_attach_file_24px.svg", name: "Reminders", items : [] }, 
    { 
     icon: "ic_archive_24px.svg", 
     name: "Inspriation", 
     items : [{name : 'Submenu 1'}, {name : 'Submenu 2'}, {name : 'Submenu 2'}] 
    }, 
    { 
     icon: "ic_battery_30_24px.svg", 
     name: "Personal", 
     items : [{name : 'Submenu 1'}, {name : 'Submenu 2'}, {name : 'Submenu 2'}] 
    }, 
    { 
     icon: "ic_archive_24px.svg", 
     name: "Inspriation", 
     items : [{name : 'Submenu 1'}, {name : 'Submenu 2'}, {name : 'Submenu 2'}] 
    } 
]; 


// MENU ITEM NAVIGATION .................................... 
$scope.parentMenuAction = function(menu) { 
    //Set as Active Menu or Remove as Active menu 
    $scope.activeMenu = (menu === $scope.activeMenu) ? {} : menu; 

    // Other Things to Do When Parent Manu is Clicked ... 
    console.log('Active Menu ' + $scope.activeMenu.name); 
    $state.go(menu.state); 

}; 



// SUB MENU ITEM NAVIGATION .............................. 
$scope.chieldMenuAction = function(item) { 
    // Set As Active SubMenu Item 
    $scope.activeSubMenu = item; 

    console.log('Active SubMenu ' + $scope.activeSubMenu); 
}