2015-01-26 15 views
5

So che questa domanda è stato chiesto più volte su SO, ma non sono riuscito a trovare una rispostang-click non funziona in Firefox

Ho una direttiva che è responsabile del caricamento dei file.

Ecco il codice della mia direttiva:

var directive = { 
     restrict: 'AE', 
     scope: { 
      settings: '=' 
     }, 
     controller: 'fileUploaderCtrl', 
     replace: true, 
     template: '<div class="fileTransferContainer uploadContainer" ng-file-drop="onFileSelect($files)" ng-file-drag-over-class="dropBox">\ 
         <fieldset>\ 
          <legend>Uploads in progress</legend>\ 
          <div ng-repeat="file in selectedFiles" class="fileTransfer">\ 
           <span class="up_fileSize"> {{file.size/1024 | number:2}}KB</span>\ 
           <span>{{file.sizeUploaded()}}</span>\ 
           <div class="progressContainer">\ 
            <div class="up_actions">\ 
             <span>\ 
              <button>\ 
               <a ng-click="remove($index)" class="small_icon white_delete"></a>\ 
              </button>\ 
             </span>\ 
            </div>\ 
           </div>\ 
          </div>\ 
         </fieldset>\ 
        </div>' 
       } 
      [...] 

E nel mio controller, ho il seguente codice:

$scope.remove = function (index) { 
     debugger; 
     $scope.selectedFiles.splice(index, 1); 
     $scope.sendUpdatedModel(); 
    } 

Quello che ho provato:

Per quanto riguarda il mio ng-click è all'interno di una ng-repeat, mi stavo chiedendo se non fosse correlato all'ambito dell'ereditarietà. Ho provato questo, con gli stessi risultati (che lavorano in cromo, ma non in Firefox)

ng-click="$parent.remove($index)" 

Ho anche modificato la funzione di controllo in questo modo:

function remove(index) { 
      $scope.selectedFiles.splice(index, 1); 
      $scope.sendUpdatedModel(); 

    } 
    $scope.remove = remove; 

E 'stato anche lavorando su Chrome , ma non in firefox

nota che non ho alcun errore nella console. A questo punto, non ho idea di cosa posso controllare/fare per capire questo errore

+1

prova ad aggiungere href = "" per i vostri alcune versioni di FF non prendono il mouse eventi su tag di ancoraggio a meno che non abbiano un href, puoi anche usare un pulsante e stile come un ancoraggio, questo è più compatibile e semanticamente corretto dal momento che gli ancoraggi sono intesi come collegamenti –

+0

@DayanMorenoLeon Thx, tu mi hai indicato il problema senza saperlo. La mia ancora era dentro un bottone. Così ho deplaced il ng-click –

+0

non mi sono nemmeno accorto ho solo pensato che non avresti fatto qualcosa del genere .. –

risposta

5

Sembra che non sia così bello avere uno <button> .

ho messo la risposta qui, non sappiamo mai se qualcuno può fare errori stupidi come il mio ;-)

   <button ng-click="remove($index)" >\ 
        <a class="small_icon white_delete"></a>\ 
       </button>\ 
+0

E se invece volessi il click sulla a e non sul pulsante? Allora cosa? –

+1

@SachinKainth Si rimuove il pulsante –