如何在离子3中包含JS文件

ras*_*dnk 19 typescript ionic2 ionic3 angular

我正在寻找一种方法来访问外部js文件中的变量,该文件包含在assets/data文件夹中

以下是我试过的

放置test.js资产/数据文件夹

test.js添加变量testvar = "heloo from external js";

添加了脚本标签 src/index.html <script src="assets/data/test.js"></script>

app.component.ts我增加进口之后此线;declare var testvar: any;

在构造函数中添加此行以记录该值 console.log(testvar);

结果是错误:ERROR ReferenceError:未定义testvar

那么,我如何在打字稿中使用我的js变量?

ras*_*dnk 33

这个解决方案只对我有用

放入进口的js src/index.html头标记,之前 build/polyfills.jsbuild/main.js(他们在身体标记);

示例:我创建了一个src/assets/test.js带有a var testvar,导入src/index.html然后src/app/app.component.ts声明的文件declare var testvar;.

test.js

var testvar = "Hello from external js";
Run Code Online (Sandbox Code Playgroud)

的index.html

...
  <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
  <link rel="manifest" href="manifest.json">
  <meta name="theme-color" content="#4e8ef7">

  <!-- cordova.js required for cordova apps -->
  <script src="cordova.js"></script>
  <script src="assets/js/test.js"></script> //here, not in body
...
Run Code Online (Sandbox Code Playgroud)

app.componet.ts

declare var testvar;

@Component({
   templateUrl: 'app.html'
})
export class MyApp {
  @ViewChild(Nav) nav: Nav;
  constructor(private statusbar : StatusBar,  splashScreen: SplashScreen) {
   alert(testvar);
...
Run Code Online (Sandbox Code Playgroud)