我学习角度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)
}
}
}
}
答案 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()方法中编写代码。