2016-05-29 2 views
3

Я пытаюсь преобразовать csv в массив на угловом 1,5 + ионном на иврите. Я использую ng-csv. Что я сделал до сих пор:Как преобразовать 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 
    }; 

, что еще нужно сделать, чтобы получить объект как массив.

ответ

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 теперь будет массив объектов

+0

привет, может быть, вы знаете, как я могу поместить строку в этот компонент, чтобы проанализировать его как массив? http://stackoverflow.com/questions/37700699/parse-string-csv-to-array-on-angular –

-1

$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 
    } 
); 
+0

lookd работает, но на первом приложении нагрузки его получение controllers.js ошибки: 49Uncaught ReferenceError: CSV не определен (...) (анонимные функции) @ VM2442: 1InjectedScript._evaluateOn @ (program): 145InjectedScript._evaluateAndWrap @ (program): 137InjectedScript.evaluateOnCallFrame @ –

+0

Это была моя ошибка, первая функция, переданная в $ watch, должна вернуть то, что просматривается, поэтому измените ее на 'function() {return $ scope.csv.content; } ' – jdphenix

Смежные вопросы