如何从另一个javascript文件使用静态javascript函数?
您好,谢谢您抽出时间。 我正在尝试使JavaScript示例应用程序正常工作 事实上,我不知道如何使用这个静态函数:如何从另一个javascript文件使用静态javascript函数?,javascript,Javascript,您好,谢谢您抽出时间。 我正在尝试使JavaScript示例应用程序正常工作 事实上,我不知道如何使用这个静态函数: core.utils.js static parseUrl(url) { const data = {}; data.filename = ''; data.extension = ''; data.pathname = ''; data.query = ''; let parsedUrl = URL.parse(url);
core.utils.js
static parseUrl(url) {
const data = {};
data.filename = '';
data.extension = '';
data.pathname = '';
data.query = '';
let parsedUrl = URL.parse(url);
data.pathname = parsedUrl.pathname;
data.query = parsedUrl.query;
if (data.query) {
// Find "filename" parameter value, if present
data.filename = data.query.split('&').reduce((acc, fieldval) => {
let fvPair = fieldval.split('=');
if (fvPair.length > 0 && fvPair[0] == 'filename') {
acc = fvPair[1];
}
return acc;
});
}
// get file name
if (!data.filename) {
data.filename = data.pathname.split('/').pop();
}
// find extension
let splittedName = data.filename.split('.');
if (splittedName.length <= 1) {
data.extension = 'dicom';
} else {
data.extension = data.filename.split('.').pop();
}
if (!isNaN(data.extension)) {
data.extension = 'dicom';
}
if (data.query &&
data.query.includes('contentType=application%2Fdicom')) {
data.extension = 'dicom';
}
return data;
}
但是,浏览器的控制台显示:
Uncaught SyntaxError: Unexpected identifier
错误所在的行是:
import CoreUtils from "../../src/core/core.utils";
我自己也试图解决这个问题,我读到:
然后我按照Fernando Mendez的解释,将js文件导入index.html,如下所示:
<script src="../../src/core/core.utils.js"></script>
结果是:
Uncaught SyntaxError: Unexpected identifier
在以下行中:
import Validators from './core.validators';
你能帮我一点忙吗?
此外,我的问题与前一个问题有关:
但是我把它分开,因为我认为问题在于JavaScript,而不是库
谢谢你阅读我的文章。试试这个:
您的parseUrl(url)
函数应该是公共函数,因此将静态parseUrl(url)
更改为导出函数parseUrl(url)
在主javascript文件中,按如下方式导入:
import { parseUrl } from "../../src/core/core.utils";
然后使用它:var parsed=parseUrl(url)代码>
另外,请检查您是否试图从另一个js文件调用静态js函数?
看起来你在这里遇到了一些问题
1.从“../../src/core/core.utils”导入CoreUtils代码>
从您的CoreUtils示例代码中,我没有看到src/core/core_utils.js中导出的CoreUtils
对象
为了利用import
语句引用另一个文件中的代码,您需要从原始文件中导出对象。()
这可以通过修改core_utils.js中的函数定义快速完成,如下所示:
将静态解析url(url){
更改为导出函数解析url(url){
然后,在application.js中:
将导入CoreUtils从“./../src/core/core.utils”;
更改为导入{parseUrl}从“./../src/core/core.utils”
看起来您在从“/core.Validators”导入验证程序时遇到了类似的错误。
希望能有所帮助!@baao:你可以在尖端浏览器中使用。例如,最新的Chrome。你可以?但是模块加载现在真的可以工作了吗?@T.J.crowder你引用的代码不完整,除非它在类
正文中,否则它是一个语法错误。你如何使用它将取决于core.utils.js
:如果它使用导出
,那么您只需要使用最先进的浏览器或Transfile,因为浏览器才刚刚获得模块支持。如果没有,它可能支持其他AMD标准,如RequireJS或CommonJS,或者可能只是创建一个全局文件。因此,我们真的需要了解更多信息来帮助您(除上述内容外)@baao:是的,的确如此。但同样是尖端。@baao:FWIW:我们在同一时间提交了相同的答案:)
import Validators from './core.validators';
import { parseUrl } from "../../src/core/core.utils";