Javascript 带geojson标记的提前键入和Bloohdound
我想在带有geojson标记层的搜索框中使用typeahead和Brandhound。使用位于引导导航栏中的传单地图和搜索框,用户可以查找地图上显示的项目 在实施《猎犬》和《打字前进》的过程中,有一点我就是不明白。我一直无法使它工作 首先,我使用array.push方法使用以下代码将信息从层发送到阵列:Javascript 带geojson标记的提前键入和Bloohdound,javascript,twitter-bootstrap,leaflet,Javascript,Twitter Bootstrap,Leaflet,我想在带有geojson标记层的搜索框中使用typeahead和Brandhound。使用位于引导导航栏中的传单地图和搜索框,用户可以查找地图上显示的项目 在实施《猎犬》和《打字前进》的过程中,有一点我就是不明白。我一直无法使它工作 首先,我使用array.push方法使用以下代码将信息从层发送到阵列: function onEachFeatureProj(feature, layer) { var ProjPopup = '<strong>Organization
function onEachFeatureProj(feature, layer) {
var ProjPopup =
'<strong>Organization: ' + feature.properties.OrgName + '</strong>';
ProjSearch.push({
name: layer.feature.properties.OrgName,
source: "CSJ 2014",
id: L.stamp(layer),
lat: layer.feature.geometry.coordinates[1],
lng: layer.feature.geometry.coordinates[0]
});
layer.bindPopup(ProjPopup);
}
最后,我开始将其发送到搜索框:
/* instantiate the typeahead UI */
$("#searchbox").typeahead({
minLength: 3,
highlight: true,
hint: false
}, {
name: "CSJ 2014",
displayKey: "name",
source: ProjBH.ttAdapter(),
templates: {
header: "<h4 class='typeahead-header'>Projects</h4>",
suggestion: Handlebars.compile(["{{name}}"].join(""))
}
});
/*实例化typeahead UI*/
$(“#搜索框”)。提前键入({
最小长度:3,
推荐理由:没错,
提示:错误
}, {
名称:“CSJ 2014”,
显示键:“名称”,
来源:ProjBH.ttAdapter(),
模板:{
标题:“项目”,
建议:handlebar.compile([{{name}}].join(“”)
}
});
请点击此处:
编辑
我终于找到了问题所在。我缺少一些html元素来接收内容:
<table class="table table-hover" id="feature-list">
<tbody class="list"></tbody>
</table>
加载后立即抛出JS错误
未捕获错误:无效的数据集名称:CSJ 2014
。
这是因为typeahead.js不允许在name
中使用空格。
只能由下划线、破折号、字母(a-z)和数字组成
见
为什么不切换到CSJ_2014呢?我终于找到了问题。我缺少一些html元素来接收内容:
<table class="table table-hover" id="feature-list">
<tbody class="list"></tbody>
</table>
这一点很好。我尝试更改名称,但没有得到不同的结果。您在此处查找的确切行为是什么?显示/隐藏基于猎犬查询的地图功能的代码在哪里?我尝试做的是:用户在搜索框中输入文本,从标记层查找特定项目,并在列表中显示建议,以便点击。我在JSFIDLE上的示例试图达到这个目的。请注意,当导航栏中开始显示提示时,在导航栏中使用“猎犬”需要解决一些css问题。谢谢,我刚刚发现了主要问题:我缺少一些html代码来接收来自“猎犬”和“提前键入”的信息。
<table class="table table-hover" id="feature-list">
<tbody class="list"></tbody>
</table>