Quello che sta accadendo qui:
voglio il pulsante "cancella prenotazione" per avere un timeout su di esso dopo la sua cliccato. Al primo clic cambia per mostrare il pulsante "conferma cancellazione". Dopo alcuni secondi ritorna su "cancella prenotazione".
mia console mi dà:
TypeError: $timeout is not a function
Sto usando AngularJS $ timeout:
regolatore:
'use strict';
module.controller('ReservationItemCtrl', ['$scope', '$stateParams', '$RPC',
function($scope, $stateParams, $RPC, $timeout) {
......other stuff.......
......other stuff.......
$scope.toggleCancelReservation = function(reservation) {
reservation.clickedcancel = true;
$timeout(function(){reservation.clickedcancel = false}, 4000);
};
}
]);
modello:
<button ng-show="!reservation.value.deleted && !deleted.value"
class="btn btn-danger"
ng-show="canCancel(reservation)" ng-if="!reservation.clickedcancel" ng-click="toggleCancelReservation(reservation)">
Cancel With Refund
</button>
<button type="button" class="btn btn-danger" ng-if="reservation.clickedcancel == true" ng-click="deleteReservation();" style="margin-top: -4px;">
Confirm Cancellation
</button>
sto con precisione ottenendo il ma a n per cambiare quando viene cliccato per primo e poi se cliccato di nuovo cancella/cancella correttamente la prenotazione, ma se non faccio nulla dopo il primo clic il timeout non ritorna mai al pulsante originale. Nella mia console vedo quello $timeout is not a function
per qualche motivo? L'ho incluso nel mio controller. Mi sto perdendo qualcosa?
hai tentato di risolvere il problema con l'aggiunta di '$ timeout' nel elenco di servizi iniettati nel controller? –