当用户按'/'时,我输入了'validaTag'的更改值(如Instagram上的#)。
我希望将焦点设置在此列表的第一个元素上,并在输入时模糊。
模型
<input type="text" name="myAddress" ng-enter="chatCtrl.sendMsg(chatCtrl[tab]); chatCtrl[tab]=''; " ng-click="chatCtrl.getChatTab(tab);" ng-model="chatCtrl[tab]" class="input-chat" style="width: 95%" ng-change="checkkey(chatCtrl[tab])" >
<div ng-hide="!validaTag">
<ul class="list-group tags_chat">
<li class="list-group-item" ng-click="enviarTexto(tag.descricao, tab)" ng-repeat="tag in alltags | filter:hashtag:strict | limitTo : 3" setFocus="$last">
<b >{{tag.tag}}</b> -
{{tag.descricao}}
</li>
</ul>
</div>
</div>
控制器
$scope.checkkey = function (text) {
$scope.hashtag = '';
$scope.alltags = '';
$scope.frase = '';
$scope.validaTag = text.includes('/');
$scope.frase = text.substr(0, text.indexOf('/'));
if($scope.validaTag == true){
$scope.hashtag = text.substring(text.indexOf("/"))
$.ajax({url:'blablabla',
async: !1,
type: "GET"
}).done(function(response) {
response = evalJson(response);
$scope.alltags = response;
$scope.alltags = $.map($scope.alltags, function(value, index) {
return [value];
});
})
}
}
答案 0 :(得分:0)
如果您显示的模板是指令模板,并且如果您在指令中只出现一次,那么这样的事情应该可以解决这个问题
angular.element(element.find('li')[0]).focus();
如果这不起作用,您可能需要为此实现自己的指令。