mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
refactor(): reorganize source files
This commit is contained in:
115
js/angular/controller/listController.js
vendored
Normal file
115
js/angular/controller/listController.js
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
|
||||
/**
|
||||
* @ngdoc service
|
||||
* @name $ionicListDelegate
|
||||
* @module ionic
|
||||
*
|
||||
* @description
|
||||
* Delegate for controlling the {@link ionic.directive:ionList} directive.
|
||||
*
|
||||
* Methods called directly on the $ionicListDelegate service will control all lists.
|
||||
* Use the {@link ionic.service:$ionicListDelegate#$getByHandle $getByHandle}
|
||||
* method to control specific ionList instances.
|
||||
*
|
||||
* @usage
|
||||
*
|
||||
* ````html
|
||||
* <ion-content ng-controller="MyCtrl">
|
||||
* <button class="button" ng-click="showDeleteButtons()"></button>
|
||||
* <ion-list>
|
||||
* <ion-item ng-repeat="i in items">>
|
||||
* {% raw %}Hello, {{i}}!{% endraw %}
|
||||
* <ion-delete-button class="ion-minus-circled"></ion-delete-button>
|
||||
* </ion-item>
|
||||
* </ion-list>
|
||||
* </ion-content>
|
||||
* ```
|
||||
* ```js
|
||||
* function MyCtrl($scope, $ionicListDelegate) {
|
||||
* $scope.showDeleteButtons = function() {
|
||||
* $ionicListDelegate.showDelete(true);
|
||||
* };
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
IonicModule
|
||||
.service('$ionicListDelegate', delegateService([
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $ionicListDelegate#showReorder
|
||||
* @param {boolean=} showReorder Set whether or not this list is showing its reorder buttons.
|
||||
* @returns {boolean} Whether the reorder buttons are shown.
|
||||
*/
|
||||
'showReorder',
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $ionicListDelegate#showDelete
|
||||
* @param {boolean=} showReorder Set whether or not this list is showing its delete buttons.
|
||||
* @returns {boolean} Whether the delete buttons are shown.
|
||||
*/
|
||||
'showDelete',
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $ionicListDelegate#canSwipeItems
|
||||
* @param {boolean=} showReorder Set whether or not this list is able to swipe to show
|
||||
* option buttons.
|
||||
* @returns {boolean} Whether the list is able to swipe to show option buttons.
|
||||
*/
|
||||
'canSwipeItems',
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $ionicListDelegate#closeOptionButtons
|
||||
* @description Closes any option buttons on the list that are swiped open.
|
||||
*/
|
||||
'closeOptionButtons',
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $ionicListDelegate#$getByHandle
|
||||
* @param {string} handle
|
||||
* @returns `delegateInstance` A delegate instance that controls only the
|
||||
* {@link ionic.directive:ionList} directives with `delegate-handle` matching
|
||||
* the given handle.
|
||||
*
|
||||
* Example: `$ionicListDelegate.$getByHandle('my-handle').showReorder(true);`
|
||||
*/
|
||||
]))
|
||||
|
||||
.controller('$ionicList', [
|
||||
'$scope',
|
||||
'$attrs',
|
||||
'$parse',
|
||||
'$ionicListDelegate',
|
||||
function($scope, $attrs, $parse, $ionicListDelegate) {
|
||||
|
||||
var isSwipeable = true;
|
||||
var isReorderShown = false;
|
||||
var isDeleteShown = false;
|
||||
|
||||
var deregisterInstance = $ionicListDelegate._registerInstance(this, $attrs.delegateHandle);
|
||||
$scope.$on('$destroy', deregisterInstance);
|
||||
|
||||
this.showReorder = function(show) {
|
||||
if (arguments.length) {
|
||||
isReorderShown = !!show;
|
||||
}
|
||||
return isReorderShown;
|
||||
};
|
||||
|
||||
this.showDelete = function(show) {
|
||||
if (arguments.length) {
|
||||
isDeleteShown = !!show;
|
||||
}
|
||||
return isDeleteShown;
|
||||
};
|
||||
|
||||
this.canSwipeItems = function(can) {
|
||||
if (arguments.length) {
|
||||
isSwipeable = !!can;
|
||||
}
|
||||
return isSwipeable;
|
||||
};
|
||||
|
||||
this.closeOptionButtons = function() {
|
||||
this.listView && this.listView.clearDragEffects();
|
||||
};
|
||||
}]);
|
||||
Reference in New Issue
Block a user