2016-12-02 67 views
0

我已經以下代碼:文件上傳兩次發射?

.jade:

div(layout="row") 
    div(layout="column", flex) 
     label(style="margin-left: 5px") File 
     md-button(class="md-raised", ng-click="onUploadClicked(3)") Upload 
     input(id="image3", type="file", accept=".pdf", file-upload="uploadFile」, style="display: none;") 

的.js /控制器:

$scope.uploadFile = function(file) { 
    console.log("upload file"); 
} 

$scope.onUploadImageClicked = function(position) { 
    console.log("on upload image"); 
    $timeout(function() { 
     document.querySelector('#image' + (position)).click(); 
    }, 100); 
}; 

upload file的日誌被印刷兩次,而on upload image打印一次只有當我點擊在Upload按鈕上,從文件選擇器中選擇一個文件,然後按文件選擇器中的打開按鈕。

在我的代碼中會出現兩次錯誤?

更新:

嘗試添加event.stopPropagation(),但沒有運氣

我的javascript名單。我只有angular.min.js一個。

enter image description here

+1

可以驗證angular.js腳本加載的次數? – Searching

+0

請參閱我的更新@搜索:) – Rendy

+0

我也觀察到使用網絡,'angular.min.js'只加載一次.. – Rendy

回答

0

我找到了根本原因!感謝@AnthonyC給我一個線索。

我對在我玉文件中加載2點不同的JavaScript這個指令:

app.directive('fileUpload', ['$parse', function ($parse) { 
    return { 
     restrict: 'A', 
     link: function(scope, element, attrs) { 
      var onChangeFunc = scope.$eval(attrs.fileUpload); 

      element.bind('change', function(){ 
       onChangeFunc(element[0].files[0]); 
      }); 
     } 
    }; 
}]); 

確保有一個指令只在你的整個的JavaScript代碼!