【问题标题】:How to show suggestions when p-autoComplete gets focused如何在 p-autoComplete 获得焦点时显示建议
【发布时间】:2019-04-11 19:31:45
【问题描述】:

我正在使用来自primefaces.orgPrimeNG

一切运行良好。但我有一个小问题。使用p-autoComplete 时,当p-autoComplete 聚焦时,它不会显示建议。我的意思是我必须输入一些内容才能获得建议。我认为这是默认行为。但我想改变它。

我尝试过的:

我尝试设置[minLength]="0",但没有成功!!!!!!!!!

【问题讨论】:

  • 这就是它的行为方式
  • @Aravind 我不能改变它的行为吗?
  • 在下面查看我的答案

标签: javascript angular autocomplete primeng


【解决方案1】:

这对我有用。

(onFocus)="autoComplete.handleDropdownClick()"

【讨论】:

  • 嗨,欢迎来到 Stack Overflow。在回答已经有几个答案的问题时,请务必添加一些额外的见解,说明为什么您提供的回复是实质性的,而不是简单地回应原始发帖人已经审查过的内容。这在您提供的“纯代码”答案中尤其重要。
【解决方案2】:

您需要在建议属性中设置一些默认项

<p-autoComplete [(ngModel)]="val" [suggestions]="results" field="name"></p-autoComplete>

你应该在组件代码中使用

results = ['a', 'b']

当您从服务加载时,您需要清除或附加到同一个数组

【讨论】:

  • 我正在做同样的事情,但仍然无法在p-autoComplete专注时立即显示建议。
  • 如果我输入一些字符,或者即使我通过使用退格键或删除键清除 p-autoComplete 的值,我也会得到结果,然后我也会得到建议。
  • 实际上为什么你想要在这种情况下填充一些值,你应该去下拉
  • 我个人认为,当他关注它时,建议立即打开,这是一种很好的用户体验。正如你所说,我可能会使用下拉菜单,但它有问题。这是下拉菜单的演示页面:primefaces.org/primeng/#/dropdown 我想使用可编辑下拉菜单。但问题在于,如果它以键盘为中心,它不会打开建议。我必须用鼠标单击它才能打开建议。请自己试一试。
  • 如果您愿意,我们可以创建一个新的自动完成来代替现有的
【解决方案3】:

你可以去 autocomplete.js 文件,像这样向 onInputFocus 添加一些代码

    AutoComplete.prototype.onInputFocus = function (event) {
    this.focus = true;
    var queryValue = this.multiple ? this.multiInputEL.nativeElement.value : this.inputEL.nativeElement.value;
    if (this.dropdownMode === 'blank')
      this.search(event, '');
    else if (this.dropdownMode === 'current')
      this.search(event, queryValue);
    this.onDropdownClick.emit({
      originalEvent: event,
      query: queryValue
    });
    this.onFocus.emit(event);
};

您可以右键单击 p-autoComplete 以到达那里,当心更新,当您更新 prime-ng 时,您将不得不再次这样做。

【讨论】:

    猜你喜欢
    • 2013-04-19
    • 1970-01-01
    • 2017-10-23
    • 2012-06-17
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多