AngularJS 使输入响应输入的指令

AngularJS directive to make input respond on enter

如果问题含糊不清,我深表歉意,我不太确定还能如何解释我的需要。我想到了一些肮脏的选项,但我是一个新手 AngularJS 编码器,我觉得有一个干净简单的方法可以用指令实现这个?

我需要的是一个输入框,它等待 ENTER 键按下,然后触发,并在收到它时执行操作。该操作是根据在按下回车键之前输入的内容从外部 JSON 对象简单获取。

每次按下换行键时,该字段也应重置为空。

:

吴提交救援!您可以通过将输入包装在一个表单(具有名称)中来轻松地使其工作。一大优点:这将适用于移动设备,他们将在键盘旁边有一个 "submit" 的快捷方式。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>

  
<form 
  name="theFormNeedsANameForNgSubmitToFire" 
  ng-submit="myScopeInfos='Enter pressed and mytext was '+mytext;mytext='';">

  <input type="text" ng-model="mytext"/>

</form>

<div>{{myScopeInfos}}</div>
</div>

这应该让你开始:

app.directive('enter', function() {
    return function(scope, element, attrs) {
        element.bind("keydown keypress", function(event) {
            if(event.which === 13) {
            }
        });
    };
});    

要重置输入,只需将输入绑定到模型并将模型设置为空字符串即可。

要与您的服务器通信,您可以使用 angular 的 http 模块。

您可以使用 angular keyUp directive,event.keycode == 13

html

<input ng-keyup="enterThis($event)" ng-model=""></input>

控制器

$scope.enterThis = function(event){ 
    if (event.keyCode === 13){
        //do whatever

        //clear the input
        $scope.enterInput = '';

}