Как получить значение из шахматной доски. js встроенная функция библиотеки в другую нормальную функцию в angular8? - PullRequest
0 голосов
/ 13 июля 2020

Я получаю « undefined » (моя переменная test: «TESTTTT»; объявлена ​​в коде выше) в консоли, когда я перекидываю пешку из одной позиции в другую. на шахматной доске при вызове OnDrop () (см. третий параметр this.test). В основном мне нужно значение здесь, в этой функции onDrop (source, target) {console.log ("DROP call", source, target, this.test)} . Я использую https://chessboardjs.com/index.html эту шахматную доску. js библиотека в angular8.

Ошибка в моем журнале консоли :: DROP call d7 e4 undefined

Я ожидаю

TESTTTT

напечатать в консоли.

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { CourseService } from '../../../course.service';
import { $ } from 'protractor';
declare var ChessBoard: any;

@Component({
  selector: 'app-exercise',
  templateUrl: './exercise.component.html',
  styleUrls: ['./exercise.component.css']
})
export class ExerciseComponent implements OnInit {
  board: any;
  chapter_id: any;
  chapter_name: any;
  exercises: any;
  test:"TESTTTT";
  current_exercise: any = {question:""};
  constructor(private route: ActivatedRoute, private router: Router, private courseService: CourseService) { }

  ngOnInit(): void {
    this.route.queryParams.subscribe(params => {
      this.chapter_id = params['chapter_id'];
      this.chapter_name = params['chapter_name']
    });

    this.courseService.getChapterExercise(this.chapter_id)
      .subscribe(data => {
        console.log("exercise data", data);
        this.exercises = data;
        this.exercises = this.exercises.data;
        this.current_exercise = this.exercises[0];

        console.log("ererere", this.exercises[0].position[0]);
        this.board = ChessBoard('board', { position: this.exercises[0].position[0],moveSpeed:'slow', draggable: true, 
                                         onDragStart:this.onDragStart.bind(this),onDrop:this.onDrop.bind(this),
                                         onMoveEnd:this.onMoveEnd.bind(this),
                                         showErrors:console});
        console.log("fen",this.board.fen());
        setTimeout(()=>{
          this.board.position(this.exercises[0].position[1]);          
        },3000)

      },
        err => { console.log("Error", err); })


  }


  onDragStart(position){
console.log("dragstart",position);

  }

  onDrop(source,target){
    console.log("DROP call",source,target,this.test)
  }

  onMoveEnd(start,stop){
    console.log("start",start);
    console.log("stop",stop);
    
    
  }



}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...