mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
feat(ionic): remove all delegates
BREAKING CHANGE: $ionicScrollDelegate, $ionicSlideBoxDelegate, and
$ionicSideMenuDelegate have been removed.
- $ionicScrollDelegate has been changed to $ionicScrollController.
Documentation:
[ionContent](
http://ajoslin.github.io/docs/nightly/api/directive/ionContent),
[ionScroll](
http://ajoslin.github.io/docs/nightly/api/directive/ionScroll)
Change your code from this:
```html
<ion-content ng-controller="MyCtrl">
<button ng-click="scrollBottom()">Scroll to bottom!</button>
</ion-content>
```
```js
function MyCtrl($scope, $ionicScrollDelegate) {
$scope.scrollBottom = function() {
$ionicScrollDelegate.scrollBottom();
};
}
```
To this:
```html
<!-- optional attr controller-bind, see docs -->
<ion-content ng-controller="MyCtrl">
<button ng-click="scrollBottom()">Scroll to bottom!</button>
</ion-content>
```
```js
function MyCtrl($scope) {
$scope.scrollBottom = function() {
$scope.$ionicScrollController.scrollBottom();
};
}
```
- $ionicSideMenuDelegate has been changed to
$ionicSideMenusController. Documentation:
[ionSideMenus](http://ajoslin.github.io/docs/nightly/api/directive/ionSideMenus)
Change your code from this:
```html
<ion-side-menus>
<ion-side-menu side="left">Side Menu Left</ion-side-menu>
<ion-pane ion-side-menu-content ng-controller="MyCtrl">
<button ng-click="toggleLeftMenu()">
Toggle Left Menu!
</button>
</ion-pane>
</ion-side-menus>
```
```js
function MyCtrl($scope, $ionicSideMenuDelegate) {
$scope.toggleLeftMenu = function() {
$ionicSideMenuDelegate.toggleLeft();
};
}
```
To this:
```html
<!-- optional attr controller-bind, see documentation -->
<ion-side-menus>
<ion-side-menu side="left">Side Menu Left</ion-side-menu>
<ion-pane ion-side-menu-content ng-controller="MyCtrl">
<button ng-click="toggleLeftMenu()">
Toggle Left Menu!
</button>
</ion-pane>
</ion-side-menus>
```
```js
function MyCtrl($scope) {
$scope.toggleLeftMenu = function() {
$scope.$ionicSideMenuController.toggleLeft();
};
}
```
- $ionicSlideBoxDelegate has been removed and upgraded to
$ionicSlideBoxController. It had only one method that
was unneeded. [Documentation](
http://ajoslin.github.io/docs/nightly/api/directive/ionSlideBox)
This commit is contained in:
29
js/ext/angular/src/directive/ionicBar.js
vendored
29
js/ext/angular/src/directive/ionicBar.js
vendored
@@ -3,11 +3,36 @@
|
||||
|
||||
angular.module('ionic.ui.header', ['ngAnimate', 'ngSanitize'])
|
||||
|
||||
.directive('barHeader', ['$ionicScrollDelegate', function($ionicScrollDelegate) {
|
||||
.directive('barHeader', ['$document', function($document) {
|
||||
return {
|
||||
restrict: 'C',
|
||||
link: function($scope, $element, $attr) {
|
||||
$ionicScrollDelegate($scope).tapScrollToTop($element);
|
||||
ionic.requestAnimationFrame(function() {
|
||||
var scrollCtrl = $element.controller('$ionicScroll');
|
||||
if (!scrollCtrl) {
|
||||
return;
|
||||
}
|
||||
|
||||
ionic.on('tap', onTap, $element[0]);
|
||||
$scope.$on('$destroy', function() {
|
||||
ionic.off('tap', onTap, $element[0]);
|
||||
});
|
||||
|
||||
function onTap(e) {
|
||||
if (ionic.DomUtil.getParentOrSelfWithClass(e.target, 'button', 4)) {
|
||||
return;
|
||||
}
|
||||
var touch = e.gesture && e.gesture.touches[0] || e.detail.touches[0];
|
||||
var bounds = $element[0].getBoundingClientRect();
|
||||
if(ionic.DomUtil.rectContains(
|
||||
touch.pageX, touch.pageY,
|
||||
bounds.left, bounds.top - 20,
|
||||
bounds.left + bounds.width, bounds.top + bounds.height)
|
||||
) {
|
||||
scrollCtrl.scrollTop(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}])
|
||||
|
||||
Reference in New Issue
Block a user