2016-03-14 33 views
2

我想爲我們的項目構建一個簡單的csv閱讀器。首先我在JS中建立了一個,它工作正常,但我很難將其轉換爲ts。Csv Reader Typescript

這是一個簡單的html代碼:

<div id="dvImportSegments" class="fileupload"> 
    <fieldset> 
     <legend>Upload your CSV File</legend> 
     <input type="file" name="File Upload" id="txtFileUpload" (change)="changeListener($event)" accept=".csv"/> 
    </fieldset> 
</div> 

,這是在其上運行的打字稿:

import {Component, ViewEncapsulation} from 'angular2/core'; 
import {Router} from 'angular2/router'; 
import {ContentService} from "../service/contentService"; 
import {RouteParams} from "angular2/router"; 

@Component({ 
    selector: 'createCsv', 
    templateUrl: 'app/partials_html/createCsv.component.html', 
    encapsulation: ViewEncapsulation.None 
}) 
export class CreateCsvComponent { 

changeListener($event):void { 
    this.upload($event.target); 
} 

upload(inputValue:any):void { 

     var data = null; 
     var file:File = inputValue.files[0]; 
     var reader:FileReader = new FileReader(); 

     //reader.readAsText(file); 

     reader.onloadend = function (e) { 
      var csvData = reader.result; 
      data = $.csv.toArrays(csvData); //??? 

      if (data && data.length > 0) { 
       alert('Imported -' + data.length + '- rows successfully!'); 
      } else { 
       alert('No data to import!'); 
      } 
     }; 

     reader.onerror = function() { 
      alert('Unable to read ' + file); 
     }; 
    } 
//} 
} 

,但我有一些錯誤,data = $.csv.toArrays(csvData); //???他無法找到在那裏的$符號,我該如何解決這個問題?

在此先感謝

回答

2

他無法找到在那裏

$符號您可能正在使用https://github.com/evanplaice/jquery-csv

您需要JavaScript庫不屬於打字稿聲明文件你的代碼庫的一部分。一個簡單的一個vendor.d.ts

declare var $:any; 

你也需要看看你的模塊加載,以確保您的代碼運行之前所需的庫被加載。 https://basarat.gitbooks.io/typescript/content/docs/types/migrating.html

+0

是做到了,TY –

+0

曾任職:

更多

一些關於申報文件和遷移文檔。解釋我所做的工作: (1)在您的index.html中添加jquery-csv.js,同時在您的ts文件中聲明var $:any。 (3)以$ .csv.toArrays(...)形式訪問該庫 – Dharshni