2017-09-05 35 views
2

私のIonic 3プロジェクトでNippleJS virtual joystickを使用したいと思います。最初にnpm install nipplejs --saveを使ってライブラリをインストールしました。次に、.htmlファイルと.tsファイルに以下のようなものを追加しました。ionicにjavascript仮想ジョイスティックを追加する

HTML:

<ion-header> 
    <ion-navbar> 
    <ion-title> 
     Test Virtual Joystick 
    </ion-title> 
    </ion-navbar> 
</ion-header> 

<ion-content padding> 

    <div id="zone_joystick"></div> 

</ion-content> 

TS

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { nipplejs } from 'nipplejs' 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    constructor(public navCtrl: NavController) { 
    var options = { 
     zone: document.getElementById('zone_joystick') 
    }; 

    var manager = nipplejs.create(options); 
    }  
} 

はしかし、私はCannot read property 'create' of undefined TypeErrorを取得します。私はこれをどのように扱うべきですか?

まず、それをインストールします:npm install nipplejs --save

次に、この

import nipplejs from 'nipplejs';のようにそれをインポート

+0

https://github.com/yoannmoinet/nipplejs/issues/21 –

+1

にnipplejs事については考えてこれをチェックしないが、 '確かに未定義するためzone_joystick'意志コンストラクタこれは別のライフサイクルコールバック、おそらく 'ngAfterViewInit'にある必要があります。 DOMはすでに作成されていました。 – Matthias247

+0

私はスタータープロジェクト["vjstarter on github"](https://github.com/ahmadi86/vjstarter)を追加しました。 – Hamed

答えて

3

は、あなたがこのようにそれをインポートする必要がありますのでnippleJSは、ES2015の標準に基づいて構築されていないように思えます

および使用それ

nipplejs.create(...);

EDIT

ちょうど@ Matthias247あなたはオプションでDOMから要素を含める必要があるため、あなたはionViewDidLoadライフサイクルフックでそのコードを配置する必要があり、彼のコメントで述べたように(DOMの準備ができていませんまだコンストラクタが実行された場合):

ionViewDidLoad() { 

    // Now we know the DOM is ready 
    let options = { 
    zone: document.getElementById('zone_joystick') 
    }; 

    let manager = nipplejs.create(options); 

} 
関連する問題