외부 JS 파일에 JavaScript 메서드가 있습니다. 이온 2 프로젝트에서, home.ts
에서 AnyJS
함수의 일부 메소드를 호출해야합니다. 에 <script>
태그 안에 JS 파일을 포함 시켰습니다. 나는 AnyJS
을 declare var AnyJS: any;
위의 @Component
에 내 home.ts
으로 선언했다. 이제Ionic 2에서 외부 JavaScript 함수를 호출하는 방법
, 나는 다음과 같은 참조 오류를 받고 있어요 생성자에 new
키워드를 사용하여 객체를 생성하는 동안 :
5 713568 error EXCEPTION: Error in ./HomePage class HomePage_Host - inline template:0:0 caused by: AnyJS is not defined 6 713570 error ORIGINAL EXCEPTION: AnyJS is not defined 8 713575 error
ReferenceError: AnyJS is not defined
내가 사용하고있어 이온 버전 : 여기
Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-rc.1
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
ios-deploy version: 1.8.3
ios-sim version: 5.0.4
OS: Mac OS X El Capitan
Node Version: v6.8.0
Xcode version: Xcode 8.0 Build version 8A218a
는 home.ts
:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
declare var AnyJS: any;
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
private anyjs : any;
private method : any;
constructor(public navCtrl: NavController) {
this.anyjs = new AnyJS();
this.method = this.anyjs.methodCall();
}
}
그리고 여기 내 AnyJS 파일 :
function AnyJS(){}
AnyJS.prototype.methodCall = function() {
console.log("Done!");
return true;
};
참고 : AnyJS 파일은 최신 ES6 표준하지만 일반 JS 방법을 준수하지 않는 몇 가지 프로퍼티와 메소드를 가진 객체를 포함합니다. 개체를 만들고 내 home.ts
에서 직접 메서드를 호출해야합니다.
감사 기능을 선언합니다. 그러나 TypeScript에서 외부 j의 함수를 다시 작성해야합니까? TypeScript로 다시 작성하지 않고 js 파일을 가져 오는 다른 솔루션이 있습니까? –
예를 들어 es6 :'declare module "foo"{ export class Foo {} } "을 사용하여 모듈을 선언 할 수 있습니다. –
설명해 주시겠습니까? 왜냐하면 TypeScript에서 재 작성하지 않고 js 파일을 그대로 가져 오려고하기 때문입니다. –