Javascript 为什么typeahead js不在Meteor上工作,而是在本地工作?
下面是我使用typeahead js的设置。它在本地运行得很好,没有问题。然而,当我部署到meteor时,它不再工作了,因为基准是相同的,但不会发生提前输入 在Meteor.client上:Javascript 为什么typeahead js不在Meteor上工作,而是在本地工作?,javascript,meteor,typeahead.js,Javascript,Meteor,Typeahead.js,下面是我使用typeahead js的设置。它在本地运行得很好,没有问题。然而,当我部署到meteor时,它不再工作了,因为基准是相同的,但不会发生提前输入 在Meteor.client上: Template.searchProfiles.rendered = function() { $('input#query').typeahead({ name:'searchProfiles', local:searchProfilesDatums(),
Template.searchProfiles.rendered = function() {
$('input#query').typeahead({
name:'searchProfiles',
local:searchProfilesDatums(),
});
}
var searchProfilesDatums = function() {
var datums = [];
Profiles.find().forEach(function(profile) {
tokens = profile.name.split(" ");
datums.push({value:profile.name, nameRoute:profile.nameRoute, tokens:tokens});
});
return datums;
}
当您为typeahead数据提供“name”属性时,并且使用另一个具有相同名称的数据重新初始化任何typeahead将重新使用该数据,包括本地值
如果您是远程运行的-第一个数据可能会在集合中没有数据时初始化(例如等待订阅),随后的数据会被忽略,以支持缓存的数据
可能的解决办法:
- 删除基准名称,防止typeahead缓存它
- 每次都提供一个唯一的名称(不好,因为它们都被缓存了)
- 使用IronRouter,为所需的数据/订阅提供一个before/ready钩子
- 使用修改后的typeahead分支,该分支允许计算回调(显然)
- 删除基准名称,防止typeahead缓存它
- 每次都提供一个唯一的名称(不好,因为它们都被缓存了)
- 使用IronRouter,为所需的数据/订阅提供一个before/ready钩子
- 使用修改后的typeahead分支,该分支允许计算回调(显然)
我目前正在使用一个允许计算值的,但我有一些自己的曲折 谢谢。这是一个很好的回答。解决了眼前的问题,为实施更好的解决方案提供了一个很好的方法谢谢。这是一个很好的回答。解决了眼前的问题,并提供了实施更好解决方案的好方法