2013-11-22 48 views
1

這裏是我的HTML:如何使用AngularJS上傳文件?

<button class="btn btn-default" ng-click="selectFile()">Choose file</button> 
<input type="file" accept="image/*" name="file" style="display: none;" id="photo-file" fileupload="uploadme"> 

在我的控制,我有:

$scope.selectFile = function() { 
    $("#photo-file").click(); 
} 

我還創建了一個指令:

angular.module("MyApp") 
    .directive("fileupload", function($rootScope) { 
    return { 
     scope: { 
     'fileupload': "=" 
     }, 
     link: function(scope, element, attributes) { 
     return element.bind("change", function(changeEvent) { 
      return scope.$apply(function() { 
      return scope.fileread = changeEvent.target.files[0]; 
      }); 
     }); 
     } 
    }; 
    } 
); 

但缺少的東西。當我選擇要上傳的文件時,我希望它在控制器中運行一個功能。我怎樣才能做到這一點?

+1

最簡單的方法可能是使用scope。$ parent。。該指令創建您正在使用的任何控制器的子範圍。 –

+0

您可以在控制器中'監視'綁定到'fileupload'的變量,並在變化時採取行動。 –

回答

1

如果您沒有問題,我可以推薦使用外部模塊。 Here是我嘗試過的,並且非常滿意。