【问题标题】:How to convert csv to array如何将csv转换为数组
【发布时间】:2016-05-29 13:35:48
【问题描述】:

我正在尝试将 csv 转换为希伯来语 angular 1.5+ionic 上的数组。 我正在使用ng-csv。 到目前为止我做了什么:

HTML:

    <ng-csv-import
  class="import"
  content="csv.content"
  header="csv.header"
  header-visible="csv.headerVisible"
  separator="csv.separator"
  separator-visible="csv.separatorVisible"
  result="csv.result"
  encoding="csv.encoding"
  encoding-visible="csv.encodingVisible"></ng-csv-import>

我的控制器是:

   .controller('SettingsCtrl', function ($scope,$parse) {
    $scope.csv = {
      content: null,
      header: true,
      headerVisible: true,
      separator: ',',
      separatorVisible: true,
      result: null,
      encoding: 'Windows-1255',
      encodingVisible: true
    };

还应该做​​什么才能将对象作为数组。

【问题讨论】:

    标签: javascript arrays angularjs csv ionic-framework


    【解决方案1】:

    将控制器中的代码修改为

         $scope.csv = {
            content: null,
            header: true,
            headerVisible: true,
            separator: ',',
            separatorVisible: true,
            result: null,
            encoding: 'ISO-8859-1',
            encodingVisible: true,
            accept:".csv"
        };
    

    和你的 html

            <ng-csv-import content="csv.content"
                header="csv.header"
                separator="csv.separator"
                result="csv.result"
                accept="csv.accept">
            </ng-csv-import>
    

    $scope.csv.result 现在将是一个对象数组

    【讨论】:

    【解决方案2】:

    $scope.csv.result 将包含转换的结果数组。在用户从浏览按钮中选择一个 CSV 文件后,它将被填充。因此,如果您只想将数据转储到屏幕上:

    <div ng-if="csv.content">
        {{csv.content}}
    </div>
    

    当它被填充时,你很有可能想做更多的事情,所以你可以在上面设置一个手表

    // (in controller) 
    $scope.$watch(
        function() { return $scope.csv.content; }, 
        function(newValue, oldValue) { 
            // do something on change
        }
    );
    

    【讨论】:

    • 看起来工作但在第一次加载应用程序时出现错误 controllers.js:49Uncaught ReferenceError: csv is not defined(...)(anonymous function) @ VM2442:1InjectedScript._evaluateOn @ (program):145InjectedScript._evaluateAndWrap @(程序):137InjectedScript.evaluateOnCallFrame @
    • 这是我的错误,传递给 $watch 的第一个函数需要返回正在观看的内容,所以将其更改为 function() { return $scope.csv.content; }
    猜你喜欢
    • 2017-10-02
    • 2017-09-07
    • 1970-01-01
    • 2011-04-25
    • 2011-11-22
    • 1970-01-01
    • 2022-01-17
    • 2021-10-10
    相关资源
    最近更新 更多