2

これが私のテーブルです

<tr ng-repeat="list in results">
    <td>{{list.name}}</td>
    <td>{{list.id}}</td>
    <td ng-model="phone" contenteditable on-keydown="myFunction(results)" keys="[13]">
     {{list.phone}}
    </td>

ユーザーは電話番号を編集して Enter キーを押すことができます。list.phone の値を新しく入力した値に更新するにはどうすればよいですか? たとえば、最初の結果は次のようになります

[name:John, id:123, phone:123456],[]....

しかし、ユーザーが入力する7890123 と、新しい結果は次のようになります

[name:John, id:123, phone:7890123],[]...

これどうやってするの?これが私の指示です

編集:

angular.module('myApp').directive('onKeydown', function() {
            return function(scope, elm, attrs) {
                function applyKeydown() {
                  scope.$apply(attrs.onKeydown);
                };           
                var allowedKeys = scope.$eval(attrs.keys);
                elm.bind('keydown', function(evt) {
                    if (!allowedKeys || allowedKeys.length == 0) {
                        applyKeydown();
                    } else {
                        angular.forEach(allowedKeys, function(key) {
                            if (key == evt.which) {
                                applyKeydown();
                            }
                        });
                    }
                });
            };
        });
    });
4

1 に答える 1

0

データをフォームに直接フックする代わりに、データを編集モデルに入れてから、メソッド呼び出しの後に適用してみてください。

これは例であり、ケースに固有のものではありませんが、この方法をユースケースに適用できます。 Plnkr での例

于 2014-03-03T04:39:39.387 に答える