angular - ჯავასკრიპტის ვირტუალური ჯოისტიკის დამატება ionic 3-ში


მინდა ვიყო NippleJS ვირტუალური ჯოისტიკის გამოყენება ჩემს Ionic 3 პროექტში. პირველად დავაყენე ბიბლიოთეკა გამოყენებით npm install nipplejs --save. შემდეგ, დავამატე რამდენიმე რამ ჩემს .html და .ts ფაილებში შემდეგნაირად.

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. როგორ უნდა მოვეპყრო ამას?

პასუხი #1

შეიძლება დაჯერებდეს, რომ nippleJS არ არის შექმნილი ES2015 სტანდარტზე, ამიტომ მისი ჩამოტვირთვა აუცილებელი იქნება ასეთნაირად:

პირველად დაინსტალირეთ იგი: npm install nipplejs --save

შემდეგ იმპორტე ასე

import nipplejs from 'nipplejs';

და გამოიყენე ეს

nipplejs.create(...);

რედაქტირება

როდესაც როგორც @Matthias247 ახსენებდა თავის კომენტარში, რადგან საჭიროა DOM-ის ელემენტის დამატება პარამეტრებში, ამ კოდის განთავსება უნდა მოახდინოთ ionViewDidLoad სიცოცხლის ციკლის ჰუკში (DOM ჯერ მზად არ არის, როდესაც კონსტრუქტორი მუშავდება):

ionViewDidLoad() {

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

  let manager = nipplejs.create(options);

}