0
工作在我的應用程序使用Angular1。當用戶拖拽某個文件到特定區域(div)時需要觸發一個函數。我已經嘗試過ondragenter,但是在這種情況下控制器中定義的功能是不可訪問的。強硬的,ondragenter的警報功能起作用。 onDragEnter中有沒有Angular1的替代品?或者,我怎樣才能爲相同的創建一個新的指令?onDragEnter事件沒有角
工作在我的應用程序使用Angular1。當用戶拖拽某個文件到特定區域(div)時需要觸發一個函數。我已經嘗試過ondragenter,但是在這種情況下控制器中定義的功能是不可訪問的。強硬的,ondragenter的警報功能起作用。 onDragEnter中有沒有Angular1的替代品?或者,我怎樣才能爲相同的創建一個新的指令?onDragEnter事件沒有角
在該項目中我的工作我已經拖放到文件輸入的例子。也許它可以幫助你。在這種情況下,我將Excel工作表導入到我的應用程序中的ui網格中。但是你可以調用任何指令。
在HTML,這是我輸入:
<label class="btn btn-default btn-file">
Upload file
<input type="file" accept=".xls,.xlsx,.ods" fileread="" opts="vm.gridOptions" multiple="false" />
</label>
這是輸入後調用指令上半年(該指令剩下的只是我的應用程序輸入邏輯):
.directive("fileread", [function() {
return {
scope: {
opts: '='
},
link: function($scope, $elm, $attrs) {
$elm.on('change', function(changeEvent) {
var reader = new FileReader();
//var evt = evt;
reader.onload = function(evt) {
$scope.$apply(function() {
var myEvent = ((window.event)?(event):(evt));
//get the Element which this event is all about
var Element = ((window.event)?(event.srcElement):(evt.currentTarget));
var data = Element.result;
var workbook = XLSX.read(data, {
type: 'binary'
});
var data = XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);
該指令代碼本身是不是你的情況很重要,但要注意,我引用FILEREAD作爲輸入的屬性。
對於工作示例,請參閱本Plunker(這是我的指令的簡化版本,但它是我使用的基礎):
http://embed.plnkr.co/rYC3nd7undqJz2mr8Old/
希望它能幫助。