【发布时间】:2014-09-11 00:38:38
【问题描述】:
我正在尝试在几个表中使用Angular UI Bootstrap Typeahead 指令。这些表格中可能有 0 到数千个条目,当我将 typeahead 指令附加到表格行中的每个 <input> 时,它会为每个条目创建一个 DOM 元素!
如果我在页面加载后检查 DOM,我可以在我的 HTML 正文中看到数百个 <!-- ngIf: isOpen() -->。问题是,所有这些预输入都使用相同的源列表来为预输入提供它的数据,所以从技术上讲,我应该只需要 1 个预输入元素,它只是在我的表中的每个输入上重复使用。
目前,我在 typeahead 文档中没有看到允许我们创建 1 个共享 typeahead 元素的配置属性。有什么方法可以轻松地让这个功能正常工作,而无需自己更改 angular bootstrap javascript 或无需从头开始构建 typeahead 指令?
编辑
更糟糕的是,我在表格上进行了分页,如果您在表格的“页面”之间进行更改,该指令会为该页面的每个新实例重新创建更多 <!-- ngIf: isOpen() -->。因此,如果表格以 10 页中的每页 100 个项目开始,如果用户一次点击分页的每一页,他们将在页面上结束 1000 个<!-- ngIf: isOpen() -->。
【问题讨论】:
-
所以通过改变它以便我们不将预输入附加到正文中,现在它不会在每次分页页面更改时创建更多预输入元素,但是对于每一行仍然有一个唯一的预输入表和任何给定的时间。
标签: angularjs angular-ui-bootstrap