2015-01-26 4 views
5

Я знаю, что этот вопрос был задан несколько раз на SO, но я не мог найти ответнг щелкните не работает в Firefox

Я получил директиву, которая отвечает загрузки файлов.

Вот код моей директивы:

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>' 
       } 
      [...] 

И в мой контроллер, у меня есть следующий код:

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

Что я пробовал:

Насколько мой ng-click внутри ng-repeat, мне было интересно, не связано ли это с наследованием области. Я попробовал это, с теми же результатами (работающих в хроме, но не в Firefox)

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

Я также изменил функцию контроллера таким образом:

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

    } 
    $scope.remove = remove; 

Он также работает на хроме , но не в firefox

Обратите внимание, что у меня нет никаких ошибок в консоли. На данный момент я понятия не имею, что я могу проверить/сделать, чтобы понять эту ошибку.

+1

попробуйте добавить HREF = «» к вашим некоторых версий FF не принимает мышь события на якорных тегах, если у них нет href, вы также можете использовать кнопку и стилизовать ее как привязку, более совместимую и семантически корректную, так как якоря должны быть ссылками –

+0

@DayanMorenoLeon Thx, вы указали мне проблему, не зная. Мой якорь был внутри кнопки. Таким образом, я удалил ng-click –

+0

, я даже не заметил, что я просто предположил, что вы не будете делать что-то вроде этого. –

ответ

5

Похоже, что не стоит иметь <a> внутри <button>.

Я поставил здесь ответ, мы никогда не знаем, если кто-то может делать ошибки, как глупо, как моя ;-)

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

Что делать, если вы хотите щелкнуть по кнопке a, а не кнопке? И что? –

+1

@SachinKainth Вы удаляете кнопку –

Смежные вопросы