当用户按下“ /”时,我输入了“ 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();


如果那不起作用,您可能需要为此实现自己的指令。

08-28 19:59