У меня есть приложение iOS, использующее angularJS и ионный. Я пытаюсь переключить клавиатуру на следующее поле ввода, когда нажата кнопка «Возврат». Вот HTML-код, где нг-повтор существует:Как установить фокус на следующее поле ввода, генерируемое 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 ($ индекс) «». Там я использую свою пользовательскую директиву, которая используется, когда кнопка возврата хита:
.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();
}
});
};
});
Который называет мою nextLine функции в моем контроллере:
myScope.nextLine = function (index) {
//get next html input element and .setFocus()
}
где индекс индекс поля ввода тока. Мне нужен способ получить следующий элемент ввода HTML и установить там фокус. Любая помощь приветствуется.
Не используйте 'рамки $ apply' непосредственно, вместо того, чтобы обернуть в' $ таймаута() '- это делает«умный»использование' $ применяется '- не« жестокий ». – DotBot