2016-12-13 2 views
0

Im 각진 학습 2. 문자열 배열 (셀에 1 기호)이 있습니다. 이 배열을 주기적으로 살펴보면 어레이의 모든 심볼이 "==", "코드를 중단하고 사용자 입력을 기다려야합니다 (예 : 프롬프트와 같지만 사용하는 것과 같음). 사용자가 "enter"를 누르면이 값으로 다시 시작해야합니다. 이벤트를 잡는 가장 좋은 방법은 무엇입니까?주기 각도 2에서 이벤트를 잡는 방법은 무엇입니까?

import { Component, EventEmitter, Input, Output } from '@angular/core'; 
 

 
@Component({ 
 
    selector: 'code_input', 
 
    template: `<div class="form-group"> 
 
    <h4>Input</h4> 
 
    <input type="text"> 
 
    <textarea class="form-control" rows="10" id="comment" (keyup)="outcode(inputCode)" 
 
       [(ngModel)]="inputCode"></textarea> 
 
    <h4>Output</h4> 
 
    <div>{{ outputCode }}</div> 
 
       </div>`, 
 
    styles: [` 
 
     :host { 
 
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 
 
    
 
} 
 
    `], 
 
    styleUrls: ['bootstrap/css/bootstrap-theme.css', 'bootstrap/css/bootstrap.css'] 
 
}) 
 
export class CodeInput { 
 
    @Input() inputCode: string; 
 
    outputCode: string; 
 

 

 

 
    outcode(inputCode: string) { 
 

 
     var acc: string[]; 
 
     acc = inputCode.split(''); 
 
     var cpu = new Array(30000).fill(0); 
 

 
     var brc: number = 0; 
 

 
     var j: number = 0; 
 
     this.outputCode = ""; 
 

 
     for (let i = 0; i < acc.length; i++) { 
 
      if(acc[i] === ',') { 
 

 
     //wait for input here, after input cpu[j] = (user's symbol) 
 
        
 
       
 
      } 
 
     } 
 
    } 
 
}
바인딩 emmiter

+0

당신은이 목표와 배열이 사용자 입력에서 오는 것인지 아닌지 설명해 주시겠습니까? @Vadim – Yaser

+0

이 목표는 간단한 언어의 인터리터입니다. 배열은 사용자 입력의 텍스트 영역에서옵니다. 예 : – Vadim

답변

0

시도 이벤트.

outcode(inputCode: string) { 

    var acc: string[]; 
    acc = inputCode.split(''); 
    var cpu = new Array(30000).fill(0); 

    var brc: number = 0; 

    var j: number = 0; 
    this.outputCode = ""; 

    for (let i = 0; i < acc.length; i++) { 
     if(acc[i] === ',') { 


      this.enter.emit({event:$event}); 

     } 
    } 
} 

그리고 HTML에서

추가 방법 안에 다음

@Output() enter = new EventEmitter(); 

은, 그래서 당신은 userEntered() 메소드에 코드를 작성할 수 있습니다

<textarea class="form-control" rows="10" id="comment" (keyup)="outcode(inputCode)" (enter)="userEntered()" 
[(ngModel)]="inputCode"></textarea> 

아래와 같은 방법을 입력합니다.

+0

js에서는 "프롬프트"와 같지만 입력 전에는 텍스트 영역 앞에 입력해야합니다. if (acc [i] === ',') { cpu [j] = prompt ("variable", ""); } 괜찮 았는데,하지만 내가 프롬프트에서 입력과 같은 필요가 ( – Vadim

관련 문제