<div class="host" tabindex="-1" ng-click="eventHandlers.host.click()" ti-transclude-append>
  <div class="tags" ng-class="{focused: hasFocus}">
    <ul class="tag-list">
      <li class="tag-item" ng-repeat="tag in tagList.items track by track(tag)" ng-class="{ selected: tag == tagList.selected }">
        <span ng-bind="getDisplayText(tag)"></span>
        <a class="remove-button" ng-click="tagList.remove($index)" ng-bind="options.removeTagSymbol"></a>
      </li>
    </ul>
    <input class="input"
           ng-model="newTag.text"
           ng-change="eventHandlers.input.change(newTag.text)"
           ng-keydown="eventHandlers.input.keydown($event)"
           ng-focus="eventHandlers.input.focus($event)"
           ng-blur="eventHandlers.input.blur($event)"
           ng-paste="eventHandlers.input.paste($event)"
           ng-trim="false"
           ng-class="{'invalid-tag': newTag.invalid}"
           ng-hide="tagList.items.length >= options.limit"
           ti-bind-attrs="{type: options.type, placeholder: options.placeholder, tabindex: options.tabindex, spellcheck: options.spellcheck}"
           ti-autosize>
  </div>
</div>

<div class="host" tabindex="-1" ng-click="eventHandlers.host.click()" ti-transclude-append>
  <div class="tags" ng-class="{focused: hasFocus}">
    <ul class="tag-list">
      <li class="tag-item" ng-repeat="tag in tagList.items track by track(tag)" ng-class="{ selected: tag == tagList.selected }">
        <span ng-bind="getDisplayText(tag)"></span>
        <a class="remove-button" ng-click="tagList.remove($index)" ng-bind="options.removeTagSymbol"></a>
      </li>
    </ul>
    <input class="input"
           ng-model="newTag.text"
           ng-change="eventHandlers.input.change(newTag.text)"
           ng-keydown="eventHandlers.input.keydown($event)"
           ng-trim="false"
           ng-class="{'invalid-tag': newTag.invalid}"
           ng-hide="tagList.items.length >= options.limit"
           ti-bind-attrs="{type: options.type, placeholder: options.placeholder, tabindex: options.tabindex, spellcheck: options.spellcheck}"
           ti-autosize>
  </div>
</div>

Remove some event handler to prevent keydown event is fired more than once
Remove some event handler to prevent keydown event is fired more than once
