当用户按下“ /”时,我输入了“ 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];
});
})
}
}
最佳答案
如果您显示的模板是指令模板,并且如果指令中只有一次出现,则应该使用类似的方法
angular.element(element.find('li')[0]).focus();
如果那不起作用,您可能需要为此实现自己的指令。