2014-05-18 86 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