在一个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 */