2016-03-23 16 views
1

Ich erstelle eine Website mit ember und habe derzeit Schwierigkeiten, das Modul 'ember-cli-sheetjs' in der Komponente 'add-student.js' zu verwenden. Ich kann scheinbar keine Funktionen in der Dokumentation aufrufen, die meinen aktuellen Code verwenden.Verwenden von ember-cli-sheetjs in einer Ember-Komponente

Um das Modul in ember zu bekommen, habe ich es in meine dev-Abhängigkeiten in package.json eingefügt und dann den "npm install" -Befehl ausgeführt, der das "ember-cli-sheetjs" -Modul erfolgreich installiert hat. Ich dann versuchen, es durch Schreiben verwenden:

import Ember from 'ember'; 
    import xlsx from 'npm:ember-cli-sheetjs'; 
    //have also tried directly using the sheetjs module after 
    //installing sheetjs with the command 
    //npm install xlsx --save-dev 
    //import xlsx from 'npm:xlsx'; 

    export default Ember.Component.extend({ 
     fileinput: null, //this is set with an input handler in the hbs 

    actions: { 
     fileLoaded: function() { 
      console.log(this.get('fileinput')); //properly outputs the file name 
      var workbook = xlsx.readFile(this.get('fileinput')); 
     }, 
    } 

jedoch dies auf einen Fehler ergibt sagen:

add-student.js:134 Uncaught TypeError: _npmEmberCliSheetjs.default.readFile is not a function

Ich fühle mich wie das Problem ist, dass der nach dem richtigen Pfad nicht auf die Funktion (die existiert in der Funktionsdokumentation). Wenn mir jemand sagen kann, was ich falsch mache, wäre das eine große Hilfe.

Link zu dem Modul: https://www.npmjs.com/package/ember-cli-sheetjs

Antwort

1

Wenn jemand in dieses Problem läuft Ich habe um eine Arbeit herausgefunden.

Erste in Ihrer index.html umfassen die Zeile:

<script src="assets/parsing/dist/xlsx.full.min.js"></script> 

nächstes an einen Ordner in der Öffentlichkeit schaffen (wenn es nicht bereits vorhanden ist) genannt Vermögenswerte. Als nächstes erstellen Sie einen Ordner in den Assets "Parsing" und einen Ordner in "Parsing" namens "dist". Als nächstes erstellen Sie in 'dist' eine Datei namens 'xlsx.full.min.js'.

Als nächstes kopieren Sie den Code aus der Datei: https://raw.githubusercontent.com/SheetJS/js-xlsx/master/dist/xlsx.full.min.js in die Datei xlsx.full.min.js.

schließlich in welcher Komponente möchten Sie in den sheetjs Modul verwenden nur die folgenden unten Ihre Import-Anweisung setzen:

/* global XLSX */ 

Dies ist eine Arbeit um, aber es ermöglicht es Ihnen, das sheetjs Modul zu verwenden.

0

Verwenden Bower

// bower.json 
"dependencies": { 
    "js-xlsx": "^0.11.5" 
} 
// ember-cli-build.js 
module.exports = function(defaults) { 
    app.import('bower_components/js-xlsx/dist/xlsx.min.js'); 
} 

und in Ihrer Komponente als @Russ vorgeschlagen:

import Ember from 'ember'; 
/* global XLSX */ 
Verwandte Themen