Desidero disabilitare lo scorrimento per l'elenco ionico in ionico e l'utilizzo in attesa per l'elenco.
Già usare can-swipe = "false" per disabilitarlo, ma quando si attiva l'azione showDelete o showReorder, lo scorrimento si riattiva automaticamente. Esiste comunque la possibilità di impedire nuovamente l'abilitazione dello scorrimento?
Qui sono i miei codici
HTMLProblemi ionici di cancellazione ion-list swipe
<ion-list show-delete="data.showDelete" show-reorder="data.showReorder" can-swipe="false">
<ion-item ng-repeat="item in items"
item="item"
href="#/item/{{item.id}}" class="item-remove-animate" hold-list>
Item {{ item.id }}
<ion-delete-button class="ion-minus-circled"
ng-click="onItemDelete(item)">
</ion-delete-button>
<ion-option-button class="button-assertive"
ng-click="edit(item)">
Edit
</ion-option-button>
<ion-option-button class="button-calm"
ng-click="share(item)">
Share
</ion-option-button>
<ion-reorder-button class="ion-navicon" on-reorder="moveItem(item, $fromIndex, $toIndex)"></ion-reorder-button>
</ion-item>
</ion-list>
Controller e la direttiva
angular.module('ionicApp', ['ionic'])
.directive('holdList', ['$ionicGesture', function($ionicGesture) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
$ionicGesture.on('hold', function(e) {
var content = element[0].querySelector('.item-content');
var buttons = element[0].querySelector('.item-options');
var buttonsWidth = buttons.offsetWidth;
ionic.requestAnimationFrame(function() {
content.style[ionic.CSS.TRANSITION] = 'all ease-out .25s';
if (!buttons.classList.contains('invisible')) {
content.style[ionic.CSS.TRANSFORM] = '';
setTimeout(function() {
buttons.classList.add('invisible');
}, 250);
} else {
buttons.classList.remove('invisible');
content.style[ionic.CSS.TRANSFORM] = 'translate3d(-' + buttonsWidth + 'px, 0, 0)';
}
});
}, element);
}
};
}])
.controller('MyCtrl', function($scope) {
$scope.data = {
showDelete: false
};
$scope.edit = function(item) {
alert('Edit Item: ' + item.id);
};
$scope.share = function(item) {
alert('Share Item: ' + item.id);
};
$scope.moveItem = function(item, fromIndex, toIndex) {
$scope.items.splice(fromIndex, 1);
$scope.items.splice(toIndex, 0, item);
};
$scope.onItemDelete = function(item) {
$scope.items.splice($scope.items.indexOf(item), 1);
};
$scope.items = [
{ id: 0 },
{ id: 1 },
{ id: 2 },
{ id: 3 },
{ id: 4 },
{ id: 5 },
{ id: 6 },
{ id: 7 },
{ id: 8 },
{ id: 9 },
{ id: 10 },
{ id: 11 },
{ id: 12 },
{ id: 13 },
{ id: 14 },
{ id: 15 },
{ id: 16 },
{ id: 17 },
{ id: 18 },
{ id: 19 },
{ id: 20 },
{ id: 21 },
{ id: 22 },
{ id: 23 },
{ id: 24 },
{ id: 25 },
{ id: 26 },
{ id: 27 },
{ id: 28 },
{ id: 29 },
{ id: 30 },
{ id: 31 },
{ id: 32 },
{ id: 33 },
{ id: 34 },
{ id: 35 },
{ id: 36 },
{ id: 37 },
{ id: 38 },
{ id: 39 },
{ id: 40 },
{ id: 41 },
{ id: 42 },
{ id: 43 },
{ id: 44 },
{ id: 45 },
{ id: 46 },
{ id: 47 },
{ id: 48 },
{ id: 49 },
{ id: 50 }
];
});
Hai mai provato la funzione "setAttribute" (set can-strisciare = "false" di nuovo), dopo l'innesco showDelete o l'azione showReorder? –