mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
115 lines
3.8 KiB
JavaScript
115 lines
3.8 KiB
JavaScript
/**
|
|
* @ngdoc service
|
|
* @name $ionicSideMenuDelegate
|
|
* @module ionic
|
|
*
|
|
* @description
|
|
* Delegate for controlling the {@link ionic.directive:ionSideMenus} directive.
|
|
*
|
|
* Methods called directly on the $ionicSideMenuDelegate service will control all side
|
|
* menus. Use the {@link ionic.service:$ionicSideMenuDelegate#$getByHandle $getByHandle}
|
|
* method to control specific ionSideMenus instances.
|
|
*
|
|
* @usage
|
|
*
|
|
* ```html
|
|
* <body ng-controller="MainCtrl">
|
|
* <ion-side-menus>
|
|
* <ion-side-menu-content>
|
|
* Content!
|
|
* <button ng-click="toggleLeftSideMenu()">
|
|
* Toggle Left Side Menu
|
|
* </button>
|
|
* </ion-side-menu-content>
|
|
* <ion-side-menu side="left">
|
|
* Left Menu!
|
|
* <ion-side-menu>
|
|
* </ion-side-menus>
|
|
* </body>
|
|
* ```
|
|
* ```js
|
|
* function MainCtrl($scope, $ionicSideMenuDelegate) {
|
|
* $scope.toggleLeftSideMenu = function() {
|
|
* $ionicSideMenuDelegate.toggleLeft();
|
|
* };
|
|
* }
|
|
* ```
|
|
*/
|
|
IonicModule
|
|
.service('$ionicSideMenuDelegate', delegateService([
|
|
/**
|
|
* @ngdoc method
|
|
* @name $ionicSideMenuDelegate#toggleLeft
|
|
* @description Toggle the left side menu (if it exists).
|
|
* @param {boolean=} isOpen Whether to open or close the menu.
|
|
* Default: Toggles the menu.
|
|
*/
|
|
'toggleLeft',
|
|
/**
|
|
* @ngdoc method
|
|
* @name $ionicSideMenuDelegate#toggleRight
|
|
* @description Toggle the right side menu (if it exists).
|
|
* @param {boolean=} isOpen Whether to open or close the menu.
|
|
* Default: Toggles the menu.
|
|
*/
|
|
'toggleRight',
|
|
/**
|
|
* @ngdoc method
|
|
* @name $ionicSideMenuDelegate#getOpenRatio
|
|
* @description Gets the ratio of open amount over menu width. For example, a
|
|
* menu of width 100 that is opened by 50 pixels is 50% opened, and would return
|
|
* a ratio of 0.5.
|
|
*
|
|
* @returns {float} 0 if nothing is open, between 0 and 1 if left menu is
|
|
* opened/opening, and between 0 and -1 if right menu is opened/opening.
|
|
*/
|
|
'getOpenRatio',
|
|
/**
|
|
* @ngdoc method
|
|
* @name $ionicSideMenuDelegate#isOpen
|
|
* @returns {boolean} Whether either the left or right menu is currently opened.
|
|
*/
|
|
'isOpen',
|
|
/**
|
|
* @ngdoc method
|
|
* @name $ionicSideMenuDelegate#isOpenLeft
|
|
* @returns {boolean} Whether the left menu is currently opened.
|
|
*/
|
|
'isOpenLeft',
|
|
/**
|
|
* @ngdoc method
|
|
* @name $ionicSideMenuDelegate#isOpenRight
|
|
* @returns {boolean} Whether the right menu is currently opened.
|
|
*/
|
|
'isOpenRight',
|
|
/**
|
|
* @ngdoc method
|
|
* @name $ionicSideMenuDelegate#canDragContent
|
|
* @param {boolean=} canDrag Set whether the content can or cannot be dragged to open
|
|
* side menus.
|
|
* @returns {boolean} Whether the content can be dragged to open side menus.
|
|
*/
|
|
'canDragContent',
|
|
/**
|
|
* @ngdoc method
|
|
* @name $ionicSideMenuDelegate#edgeDragThreshold
|
|
* @param {boolean|number=} value Set whether the content drag can only start if it is below a certain threshold distance from the edge of the screen. Accepts three different values:
|
|
* - If a non-zero number is given, that many pixels is used as the maximum allowed distance from the edge that starts dragging the side menu.
|
|
* - If true is given, the default number of pixels (25) is used as the maximum allowed distance.
|
|
* - If false or 0 is given, the edge drag threshold is disabled, and dragging from anywhere on the content is allowed.
|
|
* @returns {boolean} Whether the drag can start only from within the edge of screen threshold.
|
|
*/
|
|
'edgeDragThreshold',
|
|
/**
|
|
* @ngdoc method
|
|
* @name $ionicSideMenuDelegate#$getByHandle
|
|
* @param {string} handle
|
|
* @returns `delegateInstance` A delegate instance that controls only the
|
|
* {@link ionic.directive:ionSideMenus} directives with `delegate-handle` matching
|
|
* the given handle.
|
|
*
|
|
* Example: `$ionicSideMenuDelegate.$getByHandle('my-handle').toggleLeft();`
|
|
*/
|
|
]));
|
|
|