2014-05-18 123 views
2

文件模式讀取並解析CSV文件

"A","Arabia" 
"B","Brazil" 
"C","Canada" 
"D","Denmark" 
"E","England" 
"F","Finland" 
"G","Germany" 

用戶可以使用輸入文件類型選擇一個文件,我必須把它轉換成JSON對象像

$scope.dataList = [{ 
Name: "A", 
Value:"Arabia", 
IsEditing: false, 
Status: "unchanged", 
IsValueValid: true, 
IsNameValid: true 
}]; 

我發現了很多關於這個,但那些在jQuery中。這是不好的做法在AngularJs控制器使用jQuery ...我是新來AngularJs/JavaScript的領域..

誰能幫我提供有關建議,我應該怎麼辦呢?

+0

不會找到任何角度而言,嘗試谷歌,大量的JavaScript csv解析信息 – charlietfl

回答

2

無論是自己編寫解析器或使用第三方來完成。如果jQuery提供你所需要的,使用它。

在控制器上執行DOM操作是個不好的做法,這是jQuery的常見用例,其他用例在我看來都很好。

但是,不要直接在控制器中使用它,您可以將呼叫包裝到服務中的CSV轉換器中。因此,在僞代碼,你要找的是什麼:

angular.service('CSVConverterService', [function() { 

    this.convertToArray = function (csvString) {    
      // Your parser logic here or call to the third party 
    }; 

}]); 

而在你的控制器,你會做:

CSVConverterService.convertToArray($scope.myCSVString); 
+0

非常感謝.. :) ..u在這裏使用服務..它將幫助我寫服務,當我需要..它作爲我的演示..我有另一個問題..做üPLZ告訴我爲什麼在撥打第三方電話時使用$ rootscope和$ apply .. @haimlit –

+0

想了一會兒,我錯了,這裏不需要。當對範圍綁定進行更新時,需要應用範圍。由於我們在這裏沒有(我們只解析一個字符串並返回一個新的對象),這是多餘的。這裏有一個指南,解釋了一下什麼時候使用它:http://jimhoskins.com/2012/12/17/angularjs-and-apply.html – haimlit