var ITEM_TPL_DELETE_BUTTON = '
' + '
'; /** * @ngdoc directive * @name ionDeleteButton * @parent ionic.directive:ionItem * @module ionic * @restrict E * Creates a delete button inside a list item, that is visible when the * {@link ionic.directive:ionList ionList parent's} `show-delete` evaluates to true or * `$ionicListDelegate.showDelete(true)` is called. * * Takes any ionicon as a class. * * See {@link ionic.directive:ionList} for a complete example & explanation. * * @usage * * ```html * * * * Hello, list item! * * * * Show Delete? * * ``` */ IonicModule .directive('ionDeleteButton', ['$animate', function($animate) { return { restrict: 'E', require: ['^ionItem', '^?ionList'], //Run before anything else, so we can move it before other directives process //its location (eg ngIf relies on the location of the directive in the dom) priority: Number.MAX_VALUE, compile: function($element, $attr) { //Add the classes we need during the compile phase, so that they stay //even if something else like ngIf removes the element and re-addss it $attr.$set('class', ($attr['class'] || '') + ' button icon button-icon', true); return function($scope, $element, $attr, ctrls) { var itemCtrl = ctrls[0]; var listCtrl = ctrls[1]; var container = jqLite(ITEM_TPL_DELETE_BUTTON); container.append($element); itemCtrl.$element.append(container).addClass('item-left-editable'); if (listCtrl && listCtrl.showDelete()) { $animate.removeClass(container, 'ng-hide'); } }; } }; }]);