如何捕捉周期角2的事件?

时间:2016-12-13 09:25:06

标签: angular typescript

我学习角度2.我有字符串数组(单元格中有1个符号)。我在循环中检查这个数组,当数组中的任何符号==“,”我必须停止代码并等待用户的输入(如提示,但我需要相同的使用)。当用户按“输入”时,它应该以此值恢复。捕获事件的最佳方法是什么?

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)
                 
                
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

尝试事件发明者绑定。

@Output() enter = new EventEmitter();

然后在方法内,

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中添加输入方法如下

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

因此,您可以在userEntered()方法中编写代码。