Delete item works

This commit is contained in:
Max Lynch
2013-10-10 16:29:35 -05:00
parent 92c0d2315b
commit 82ba734a73
5 changed files with 34 additions and 36 deletions

View File

@ -189,7 +189,7 @@ angular.module('ionic.ui.list', ['ionic.service', 'ngAnimate'])
transclude: true, transclude: true,
template: '<li class="list-item">' + template: '<li class="list-item">' +
' <div class="list-item-edit" ng-if="item.canDelete">' + ' <div class="list-item-edit" ng-if="item.canDelete">' +
' <button class="button button-icon"><i ng-class="deleteIcon"></i></button>' + ' <button class="button button-icon" ng-click="deleteClicked()"><i ng-class="deleteIcon"></i></button>' +
' </div>' + ' </div>' +
' <div class="list-item-content" ng-transclude>' + ' <div class="list-item-content" ng-transclude>' +
' </div>' + ' </div>' +
@ -198,9 +198,15 @@ angular.module('ionic.ui.list', ['ionic.service', 'ngAnimate'])
' </div>' + ' </div>' +
'</li>', '</li>',
link: function($scope, $element, $attr) { link: function($scope, $element, $attr) {
// Triggered when a button is clicked
$scope.buttonClicked = function(button) { $scope.buttonClicked = function(button) {
button.buttonClicked && button.buttonClicked($scope.item); button.buttonClicked && button.buttonClicked($scope.item);
} }
// Triggered when the delete item is clicked
$scope.deleteClicked = function() {
$scope.item.deleteItem && $scope.item.deleteItem();
}
} }
} }
}) })

25
dist/ionic.js vendored
View File

@ -1780,41 +1780,32 @@ window.ionic = {
; ;
(function(ionic) { (function(ionic) {
/**
* The ListView handles a list of items. It will process drag animations, edit mode,
* and other operations that are common on mobile lists or table views.
*/
ionic.views.List = function(opts) { ionic.views.List = function(opts) {
var _this = this; var _this = this;
this.el = opts.el; this.el = opts.el;
this.dragThresholdX = 10; // The amount of dragging required to start sliding the element over (in pixels)
this.dragThresholdX = opts.dragThresholdX || 10;
// Start the drag states
this._initDrag(); this._initDrag();
// Listen for drag and release events
window.ionic.onGesture('drag', function(e) { window.ionic.onGesture('drag', function(e) {
_this._handleDrag(e); _this._handleDrag(e);
}, this.el); }, this.el);
window.ionic.onGesture('release', function(e) { window.ionic.onGesture('release', function(e) {
_this._handleEndDrag(e); _this._handleEndDrag(e);
}, this.el); }, this.el);
/*
window.ionic.onGesture('swipeleft', function(e) {
_this._handleSwipeLeft(e);
e.gesture.stopDetect();
return false;
}, this.el);
window.ionic.onGesture('swiperight', function(e) {
_this._handleSwipeRight(e);
e.gesture.stopDetect();
return false;
}, this.el);
*/
}; };
ionic.views.List.prototype = { ionic.views.List.prototype = {
_initDrag: function() { _initDrag: function() {
this._offsetX = 0;
this._deltaSlowX = null;
this._isDragging = false; this._isDragging = false;
this._currentDrag = null; this._currentDrag = null;
}, },

View File

@ -7,7 +7,7 @@ angular.module('ionic.ui.list', ['ionic.service', 'ngAnimate'])
transclude: true, transclude: true,
template: '<li class="list-item">' + template: '<li class="list-item">' +
' <div class="list-item-edit" ng-if="item.canDelete">' + ' <div class="list-item-edit" ng-if="item.canDelete">' +
' <button class="button button-icon"><i ng-class="deleteIcon"></i></button>' + ' <button class="button button-icon" ng-click="deleteClicked()"><i ng-class="deleteIcon"></i></button>' +
' </div>' + ' </div>' +
' <div class="list-item-content" ng-transclude>' + ' <div class="list-item-content" ng-transclude>' +
' </div>' + ' </div>' +
@ -16,9 +16,15 @@ angular.module('ionic.ui.list', ['ionic.service', 'ngAnimate'])
' </div>' + ' </div>' +
'</li>', '</li>',
link: function($scope, $element, $attr) { link: function($scope, $element, $attr) {
// Triggered when a button is clicked
$scope.buttonClicked = function(button) { $scope.buttonClicked = function(button) {
button.buttonClicked && button.buttonClicked($scope.item); button.buttonClicked && button.buttonClicked($scope.item);
} }
// Triggered when the delete item is clicked
$scope.deleteClicked = function() {
$scope.item.deleteItem && $scope.item.deleteItem();
}
} }
} }
}) })

View File

@ -104,6 +104,7 @@
canSwipe: true, canSwipe: true,
icon: 'icon-chevron-right', icon: 'icon-chevron-right',
hide: false, hide: false,
deleteItem: removeItem,
buttons: [{ buttons: [{
text: 'Kill', text: 'Kill',
type: 'button-danger', type: 'button-danger',
@ -115,6 +116,7 @@
canDelete: true, canDelete: true,
canSwipe: true, canSwipe: true,
icon: 'icon-chevron-right', icon: 'icon-chevron-right',
deleteItem: removeItem,
buttons: [{ buttons: [{
text: 'Kill', text: 'Kill',
type: 'button-danger', type: 'button-danger',
@ -126,6 +128,7 @@
canDelete: true, canDelete: true,
canSwipe: true, canSwipe: true,
icon: 'icon-chevron-right', icon: 'icon-chevron-right',
deleteItem: removeItem,
buttons: [{ buttons: [{
text: 'Kill', text: 'Kill',
type: 'button-danger', type: 'button-danger',
@ -137,6 +140,7 @@
canDelete: true, canDelete: true,
canSwipe: true, canSwipe: true,
icon: 'icon-chevron-right', icon: 'icon-chevron-right',
deleteItem: removeItem,
buttons: [{ buttons: [{
text: 'Kill', text: 'Kill',
type: 'button-danger', type: 'button-danger',

View File

@ -1,40 +1,31 @@
(function(ionic) { (function(ionic) {
/**
* The ListView handles a list of items. It will process drag animations, edit mode,
* and other operations that are common on mobile lists or table views.
*/
ionic.views.List = function(opts) { ionic.views.List = function(opts) {
var _this = this; var _this = this;
this.el = opts.el; this.el = opts.el;
this.dragThresholdX = 10; // The amount of dragging required to start sliding the element over (in pixels)
this.dragThresholdX = opts.dragThresholdX || 10;
// Start the drag states
this._initDrag(); this._initDrag();
// Listen for drag and release events
window.ionic.onGesture('drag', function(e) { window.ionic.onGesture('drag', function(e) {
_this._handleDrag(e); _this._handleDrag(e);
}, this.el); }, this.el);
window.ionic.onGesture('release', function(e) { window.ionic.onGesture('release', function(e) {
_this._handleEndDrag(e); _this._handleEndDrag(e);
}, this.el); }, this.el);
/*
window.ionic.onGesture('swipeleft', function(e) {
_this._handleSwipeLeft(e);
e.gesture.stopDetect();
return false;
}, this.el);
window.ionic.onGesture('swiperight', function(e) {
_this._handleSwipeRight(e);
e.gesture.stopDetect();
return false;
}, this.el);
*/
}; };
ionic.views.List.prototype = { ionic.views.List.prototype = {
_initDrag: function() { _initDrag: function() {
this._offsetX = 0;
this._deltaSlowX = null;
this._isDragging = false; this._isDragging = false;
this._currentDrag = null; this._currentDrag = null;
}, },