Angular Material - 底部菜单



$mdBottomSheet 是一个 Angular 服务,用于在应用程序上打开底部菜单,并提供简单的 Promise API。

序号 方法和描述
1

$mdBottomSheet.show(options);

使用指定的选项显示底部菜单。

序号 参数和描述
1

* options

一个选项对象,包含以下属性:

  • templateUrl - {string=} - 将用作底部菜单内容的 html 模板文件的 url。限制:模板必须具有外部 md-bottom-sheet 元素。

  • template - {string=} - 与 templateUrl 相同,只是这是一个实际的模板字符串。

  • scope - {object=} - 将模板/控制器链接到的作用域。如果没有指定,它将创建一个新的子作用域。除非将 preserveScope 设置为 true,否则当底部菜单移除时,此作用域将被销毁。

  • preserveScope - {boolean=} - 它决定在移除元素时是否保留作用域。默认情况下为 false。

  • controller - {string=} - 与此底部菜单关联的控制器。

  • locals - {string=} - 包含键/值对的对象。这些键将用作要注入控制器的值的名称。例如,locals: {three: 3} 将把值为 3 的 three 注入控制器。

  • clickOutsideToClose - {boolean=} - 它决定用户是否可以点击底部菜单外部来关闭它。默认情况下为 true。

  • escapeToClose - {boolean=} - 它决定用户是否可以按 Esc 键来关闭底部菜单。默认情况下为 true。

  • resolve - {object=} - 与 locals 类似,但它接受 Promise 作为值,并且只有在 Promise 解析后才会打开底部菜单。

  • controllerAs - {string=} - 用于在作用域上为控制器分配别名。

  • parent - {element=} - 将底部菜单附加到的元素。父元素可以是函数、字符串、对象或 null。默认为附加到应用程序的根元素(或根元素)的主体。例如 angular.element(document.getElementById('content')) 或 "#content"。

  • disableParentScroll - {boolean=} - 是否在底部菜单打开时禁用滚动。默认为 true。

序号 返回值和描述
1

promise

可以使用 $mdBottomSheet.hide() 解析或使用 $mdBottomSheet.cancel() 拒绝的 Promise。

示例

以下示例显示了 $mdBottomSheet 服务和底部菜单的使用。

am_bottomsheet.htm

<html lang = "en">
   <head>
      <link rel = "stylesheet"
         href = "https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.css">
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.js"></script>
	  
      <script language = "javascript">
         angular
            .module('firstApplication', ['ngMaterial'])
            .controller('bottomSheetController', bottomSheetController);

         function bottomSheetController ($scope, $mdBottomSheet) {
            $scope.openBottomSheet = function() {
               $mdBottomSheet.show ({
                  template: '<md-bottom-sheet>Learn <b>Angular Material</b> @ TutorialsPoint.com!</md-bottom-sheet>'
               });
            };
         }  
      </script>      
   </head>
   
   <body ng-app = "firstApplication">
      <div ng-controller = "bottomSheetController as ctrl" layout = "column">
         <md-content class = "md-padding">
            <form ng-submit = "$event.preventDefault()">
               <md-button class = "md-raised md-primary" ng-click = "openBottomSheet()">
                  Open Bottom Sheet!
               </md-button>
            </form>
         </md-content>
      </div>
   </body>
</html>

结果

验证结果。

广告