0
그래서 두 번째 구성 요소가 있고 여기에 @HostListener
도 있습니다. 내가하고 싶은 것은 @HostListener
으로이 컴포넌트의 메소드를 호출하는 것이고, @HostListener
으로 메소드를 호출하려는 시도로 컴포넌트가 표시됩니다.동일한 구성 요소의 구성 요소에서 메서드 호출
컴포넌트
import { Component, HostListener, Input, OnInit } from '@angular/core';
import { Cell } from '../../cell';
import { Direction } from '../../direction';
import { GridService } from '../../services/grid.service';
import { Directive } from '@angular/core/src/metadata/directives';
@Component({
selector: 'app-grid',
templateUrl: 'grid.component.html',
styleUrls: ['grid.component.css'],
})
@Directive({
selector: '[appControl]'
})
export class GridComponentDirective implements OnInit {
@Input() score: number;
best: number;
itemArray: Cell[];
@HostListener('keyup.ArrowUp') Move(itemArray, UP) { } // That's what I was talking about
constructor(private gridService: GridService) { }
ngOnInit() {
this.itemArray = JSON.parse(localStorage.getItem('Grid'));
this.score = 0;
if (this.gridService.countEmpty(this.itemArray) === this.itemArray.length) {
this.gridService.randomiser(this.itemArray);
this.gridService.randomiser(this.itemArray);
}
}
Move(array: Cell[], direction: Direction) {
array = this.gridService.move(array, this.score, direction);
localStorage.setItem('Grid', JSON.stringify(array));
}
}