在Angular 2中,如何提交输入类型=";“文本”;按enter键时的值?

在Angular 2中,如何提交输入类型=";“文本”;按enter键时的值?,angular,Angular,我正在Angular 2应用程序中构建一个搜索框,尝试在点击“回车”时提交值(表单不包括按钮) 模板 <input type="text" id="search" class="form-control search-input" name="search" placeholder="Search..." [(ngModel)]="query" (ngSubmit)="this.onSubmit(query)"> 在这种情况下,ngSubmit似乎不起作用。那么,解决这个问题的“角

我正在Angular 2应用程序中构建一个搜索框,尝试在点击“回车”时提交值(表单不包括按钮)

模板

<input type="text" id="search" class="form-control search-input" name="search" placeholder="Search..." [(ngModel)]="query" (ngSubmit)="this.onSubmit(query)">

在这种情况下,ngSubmit似乎不起作用。那么,解决这个问题的“角度2方法”是什么呢?(最好没有隐藏按钮之类的黑客)

(keyup.enter)=“MethodInsideyYourComponent()”
将此添加到输入标记中在普通HTML中,按enter键时需要
提交表单。这些元素可以被css隐藏,但必须存在于表单中
ng submit
应该绑定到正常的
onsubmit
事件,并且它具有相同的触发条件


同样从您发布的代码来看,您没有表单元素,只有输入字段,
ng submit
指令仅适用于表单,因为输入元素没有
onsubmit
JS事件。

您可以将此文本框放在表单标签中,并在表单上设置ngSubmit事件,即

<form (ngSubmit)="YouMethod()">
    <input type="text" class="form-control input-lg" />
</form>

为了完整起见,此解决方案也适用于我:

<form (keydown)="keyDownFunction($event)"><input type="text" /></form>


不错!我是通过用
包装来实现的,但是您的方式更简洁明了!这也在中提到。此外,您可以通过
methodInsideyYourComponent($event)
发送输入信息,并通过方法
evt.target.value
<form (keydown)="keyDownFunction($event)"><input type="text" /></form>