【问题标题】:How to display the highlighted typeahead value in the inputbox in ngxTypeahead?如何在 ngxTypeahead 的输入框中显示突出显示的 typeahead 值?
【发布时间】:2018-07-24 00:41:22
【问题描述】:

这是官方的 ngxTypeahead 插件

http://embed.plnkr.co/gV6kMSRlogjBKnh3JHU3/

在这里,当我们按下 keyUp 或 keyDown 时,我需要在类似于 firefox 搜索框 typeahead 的输入框中显示突出显示(蓝色)的 typeahead 选项的 innerHTML。 我该怎么做?

所以我在执行上述操作时遇到了这个问题

使用 jquery 我可以像这样获取我的目标元素

var target= $(this).siblings().find("li.active");

现在我变成这样了

这是我的 onKeyUp 函数

onKeyUp($event.key){
     if( $event.keyCode== '38'|| $event.keyCode == '40'){
     var target= $event.srcElement.nextElementSibling.children[4].children[0].innerText;
     }
}

所以如果我将调试器保留在 Onkey($event.key) 函数中

然后输入$event.srcElement.nextElementSibling.children

0:div.typeahead-backdrop

1:button.list-group-item

2:button.list-group-item

3:button.list-group-item

4:button.list-group-item.active

5:button.list-group-item

我就像上面一样。 所以我需要获取活动按钮innerText。在按钮内部它有一个跨度,我需要它的 innerHTML。 是否有任何特定的简单方法可以使用 angular2 访问上述目标?

【问题讨论】:

  • 您能否提供一些有关您尝试实现的内容?您是否在模板中设置该类?为什么需要访问该元素?
  • 你的目标来自哪里?输入表格 ?如果是,您可以使用 (keyUp) 事件处理程序获取值
  • @jonrsharpe 我按问题编辑
  • @andrea06590 我编辑了我的问题,您现在可以查看吗?
  • 但是为什么有必要这样做呢?什么是设置活跃班?为什么需要访问元素;你从它的内容中得到了什么?通常,通过 $event 访问 DOM 是一种反模式:angular.io/guide/user-input#passing-event-is-a-dubious-practice

标签: jquery angular angular2-template angular2-directives


【解决方案1】:

编辑:

在输入#ngxTypeahead 上添加引用并在app.ts 代码中创建一个viewchild(从角度核心导入)

  @ViewChild("ngxTypeahead") ngxTypeahead: any;
   // then simply access the values using this.ngxTypeahead;

在选择功能中查看我的带有控制台日志的屏幕截图:) https://ibb.co/ehnfgS

【讨论】:

  • 请不要犹豫,因为我的回答是正确的,所以请解释反对意见。
  • 我没有否决您的回答。你能在这里更新一下吗? embed.plnkr.co/gV6kMSRlogjBKnh3JHU3 当我们执行 keyUp 或 keyDown 时,我需要在输入框中显示突出显示的 typeahead 选项的 innerHTML。如果您更新 plunker,我会更好地理解。提前感谢@andrea
  • 非常感谢!我现在明白了。屏幕截图很有帮助。
  • 不客气,但您的问题是如何访问我的 ngxAhead 组件信息。最佳
猜你喜欢
  • 2017-09-25
  • 1970-01-01
  • 2012-08-21
  • 2018-01-18
  • 1970-01-01
  • 2023-03-13
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多