У меня есть JavaScript-метод во внешнем JS-файле. В проекте Ionic 2 я должен вызвать некоторые функции функции AnyJS
из моего home.ts
. Я включил JS-файл в тег <script>
в index.html
. Я объявил AnyJS
вот так declare var AnyJS: any;
выше @Component
в моем home.ts
.Как вызвать внешнюю функцию JavaScript в Ionic 2
Теперь, при создании объекта с помощью ключевого слова 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
.
Спасибо за вашу помощь. Но нужно ли переписывать функции во внешних js в TypeScript? Есть ли другое решение для импорта моего js-файла, поскольку оно не переписывается в TypeScript? –
Вы можете объявить модуль с помощью es6: 'declare module" foo "{ экспортный класс Foo {} }' например. –
Не могли бы вы объяснить это? Потому что я хочу импортировать свой js-файл, поскольку он не переписывается в TypeScript. –