【问题标题】:angular-ui typeahead select id instead of objectangular-ui typeahead 选择 id 而不是对象
【发布时间】:2013-05-29 22:45:45
【问题描述】:

我正在尝试在预输入中设置一个 id 而不是一个对象,它不像选择元素那样工作。

这是一个例子,你可以在 typeahead 中写入正确的单词,然后更新 select 元素,但是如果你更改 select,typeahead 不会用名称更新,而是用 id 更新.

http://plnkr.co/edit/LJqdebViiucCv6X5hhtf?p=preview

我做错了什么?

【问题讨论】:

  • 您没有做任何“错误”的事情,这不是您所期望的行为。您没有看到对象的“id”,而是看到了选择选项的index。将 id 值更改为其他任何值,当您单击某个项目时,您仍然会看到“1”和“2”。
  • 这不是真的,我把 id 改成了 4 和 5,它显示 4 和 5,它没有显示索引。我有更新 plunker。
  • 糟糕——我的猜想很糟糕。
  • 我知道这是一个旧线程,但是...我发现这非常有用stackoverflow.com/questions/17856126/…

标签: angularjs angular-ui-typeahead


【解决方案1】:

这样的事情呢?

http://plnkr.co/edit/pUPzVK?p=preview(检查字头和 ng-options 定义)

您“做错了”是缺少信息,该字体与 ng-options 的定义不完全相同(我也为此苦苦挣扎了一段时间)。

希望对你有帮助

【讨论】:

  • 感谢@grizzlynetch,这是我最后所做的,但问题是我没有对象指针设置为选中,只有id,因为它来自数据库。使用 id 可以完美地与 ng-options 一起使用,但不能与 typeahead 一起使用。所以最后我需要解析完整的列表,检查 id 是否匹配,然后设置为选中。
  • 您是否尝试过将对象存储在对象而不是数组中并使用对象的 id 作为键?例如。 var objects = {"5":{"id":"5","name":"obj #5",...},"13":{"id":"13","name":" obj #13",...}} 那么你可以通过 id objects["5"] 直接访问该对象
  • 感谢您的建议
  • 真棒@GrizzlyNetch!这也解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多