我无法弄清楚如何将javascript文件导入我的angular2项目。它是一个不是npm的模块的文件,我能找到的唯一指令是使用npm,这不是一个选项。
我使用的是角度cli,在我的angular-cli.json文件中,我有:
{
"apps": [
"styles": [..],
"scripts": ["../pathtomyjs/file.js"]
]}
我运行构建和ng服务,当我打开我的应用程序并查看Web控制台并尝试引用我的js文件中的函数时,我能够成功完成。
我键入的控制台中的示例:
var test = MyObject;
我得到test = {};
但是,当我尝试做的时候
let test = MyObject;
在我的组件.ts文件中,我得到:
home.component.ts (10,11): Cannot find name 'MyObject'.)
不知道如何在Angular2中这样做。
谢谢!
做:
declare var MyObject: any;
let test = MyObject;
要么:
let test = (<any> MyObject);
对于jQuery:
declare var jQuery: any;
jQuery.ajax({ ... });
它是第三方图书馆吗?你必须让打字稿编译器知道类型定义文件的位置。通常,它看起来不足 node_modules/@types
夹。例如,如果您想使用 jQuery
,您将通过运行以下命令安装必要的类型定义文件:
npm install @types/jquery
我把我的 js
文件到 app/assets/scripts
并加载它们 index.html
<script src="assets/scripts/foobar.js"></script>
。这是为了 ionic2
/ angular2
项目。
在模块中,您必须在模块文件的全局范围内定义这样的函数
declare var myFancyFunction;
我对此深入了解 这里:
这是一个很好的问题,我很高兴你问,因为我希望我第一次遇到这个小问题的时候就有了我要写的内容。这是一个打字稿/ javascript和webpack问题,然后才会出现角度问题。我当然正计划写一篇文章 我的博客 尽快。
您的场景:
你跑
npm install mathjs
- 现在您尝试使用组件中的math.js:
找到math.js dist js文件(node_modules / mathjs / dist / math.js)并像这样引用
import {mathjs} from "../../node_modules/mathjs/dist/math";
但是你收到错误消息说 "set --allowJS".
你这样做:
Set --allowJS in config (tsconfig.json)
{ "compilerOptions": {
"allowJs": true, ...
现在你得到:
错误在../node_modules/mathjs/dist/math.js(12209,13):无法访问
检测到代码。
- 查看math.js源代码,您会看到它是一个旧的学校模块,但是没有根包装函数(一个函数可以将它们全部带到黑暗中并绑定它们。)(稍后会详细介绍)。
解:为目标库安装一个打包文件(@ types / mathjs)
阅读更多...