0

嗨,我有以下代码:

<form ng-submit="ctrl.commitEdit(sign)">
    <input ng-model="sign.Value">
    <input ng-model="sign.Date">
    <textarea ng-model="sign.Comment"></textarea>
    <select ng-model="sign.Property"></select>
    <button type="submit">Save</button>
</form>

在我的组件周围的表单中,我尝试以两种方式保存我的编辑(在我的表单中,我从控制器调用 ng-submit 一个方法,它保存了我的编辑):

  • 通过单击类型为“提交”的我的按钮,它会在我的表单的 ng-submit 中调用该函数。这工作正常!它节省了
  • 然后我也想通过按键盘上的“enter”来保存。这就是为什么我使用带有提交类型按钮的 ng-submit 表单的原因。这仅在我更改输入中的某些内容并且焦点在那里时才有效!当我在 textarea 中更改某些内容并按“enter”时,它会中断。当我在下拉列表中更改某些内容然后按“enter”时,它会再次打开下拉列表。

所以我想在输入、选择和文本区域中以各种方式按“输入”来保存。我怎样才能做到这一点?

谢谢

4

1 回答 1

1

您需要做的就是使用 ngKeyup。

https://docs.angularjs.org/api/ng/directive/ngKeyup

只需将其与输入键码 13 绑定并调用您的函数

此外,这是一个您可以根据自己的目的实施的指令。

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

                        event.preventDefault();
                }
            });
        };
于 2016-05-18T09:13:04.100 回答