这可能是一个棘手的问题 - 我正在尝试将 Twitter 预输入与 Bloodhound 引擎和自定义 Knockout 绑定一起使用。在我的示例中,我有两个运动员名单(足球和足球)。我正在使用预输入从其中一个列表中选择一名运动员,并且我正在使用下拉列表来选择要从哪个列表中提取。
一旦从下拉列表中选择了一项运动,Bloodhound 引擎就会使用适当的运动员进行初始化,并创建预输入。更改运动时,将使用新的运动员列表创建新的 Bloodhound 引擎。问题是预输入仍然使用第一个运动员列表而不是新列表。
我已经调试过了,我知道 Bloodhound 引擎会使用新列表重新创建,然后 Twitter typeahead 会获取更新的源。但是很可惜,旧的列表在使用时会出现。我提交这个小提琴作为证据——别管风格,这是一项正在进行的工作。简单解释一下代码:
顶部是AthleteTypeahead
类,自定义athleteTypeahead
绑定(直接在类之后)创建该类以初始化建议引擎和预先输入。底部是我的视图模型,它创建了两个不同的运动员列表。为了调试和我的理智,我已经在视图中显示了选定运动员的完整列表,并将列表发送到console.log
每当创建新的 Bloodhound 建议引擎时 - 两个列表都正确更新。我试过打电话clear()
,clearPrefetchCache()
在创建新引擎时,即使它是一个全新的引擎,但也没有运气。想法?