私はangularJSとionicを使ったiOSアプリを持っています。私は、 'Return'ボタンが押されたときに次の入力フィールドにキーボードのフォーカスを合わせようとしています。ng-repeatで生成された次の入力フィールドにフォーカスを設定するにはどうすればいいですか?
<div class="row item-list" ng-repeat="item in shoppingList">
<div class="col col-10 col-check" ng-click="checkItem($index)">
<i class="icon ion-checkmark-round" ng-if="item.Action == 'check'"></i>
</div>
<div class="col col-memo" ng-click="updateMemo($index)">
<label class="item-list item-input">
<input id="inputText" type="text" placeholder="" ng-model="item.EventContent" on-return="nextLine($index)"/>
</label>
</div>
</div>
あなたが "オンリターン=" nextLine($インデックス) "" 私は私のinput要素で見ることができます:ここではNG-repeatが存在するHTMLコードです。そこで私は、戻るボタンがヒットされたときに使用されている私のカスタムディレクティブを使用しています:
私のコントローラで私のnextLine関数を呼び出す.directive('onReturn', function() {
return function (scope, element, attrs) {
element.bind("keydown keypress", function (event) {
if (event.which === 13) {
scope.$apply(function() {
scope.$eval(attrs.onReturn);
});
event.preventDefault();
}
});
};
});
:
インデックスが現在の入力ボックスのインデックスであるmyScope.nextLine = function (index) {
//get next html input element and .setFocus()
}
。次のHTML入力要素を取得してそこにフォーカスを設定する方法が必要です。どんな助けもありがとうございます。
は直接 'スコープの$ apply'を使用しないでください、代わりに' $タイムアウト() 'で包む - それは' $適用の「スマート」の使用を行います。 ' - 残酷なものではない。 – DotBot