在一个ember组件中使用ember-cli-sheetjs

我正在使用ember创build一个网站,目前在使用名为“add-student.js”的组件中使用“ember-cli-sheetjs”模块有困难。 我似乎无法使用我当前的代码在文档中调用任何函数。

为了将模块放在ember中,我将它添加到了package.json中的dev dev dependencies中,然后运行成功安装了“ember-cli-sheetjs”模块的“npm install”命令。 然后我尝试写下来使用它:

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')); }, } 

然而这导致错误说:

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

我觉得问题在于它没有遵循函数的正确path(它存在于函数文档中)。 如果有人能告诉我我做错了什么,这将是一个巨大的帮助。

链接到模块: https : //www.npmjs.com/package/ember-cli-sheetjs

如果有人遇到这个问题,我已经find了解决办法。

首先在你的index.html中包含这行:

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

接下来在公共(如果它不存在的话)里面创build一个名为assets的文件夹。 接下来,在名为'parsing'的资产内创build一个文件夹,在'parsing'中创build一个名为'dist'的文件夹。 接下来在'dist'中创build一个名为“xlsx.full.min.js”的文件。

接下来将代码复制并粘贴到xlsx.full.min.js文件中: https ://raw.githubusercontent.com/SheetJS/js-xlsx/master/dist/xlsx.full.min.js。

最后,在你想要使用sheetjs模块的任何组件中,只需在导入语句下方input以下内容:

 /* global XLSX */ 

这是一个解决办法,但它确实允许您使用sheetjs模块。

使用鲍尔

 // 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'); } 

并在你的组件@Russbuild议:

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