如何引用引导类型预处理的数据
How to reference data for bootstrap-typeahead?
这是我的数据:
var markers = {
"example": {"lat": -83.68088192646843, "lng": -125.270751953125, "type": "town"},
"anotherexample": {"lat": -58.1548020417031, "lng": -21.318115234375, "type": "town"}
}
如何引用此数据源?
编辑:
方法是这样的:
$('.thing').typeahead({source: markers});
但这不起作用,我认为这是因为markers
不是选择我的标记对象的正确语法。我应该改用什么?
您可以尝试以某种方式序列化对象。在我的示例(jsfiddle)中,我连接了每个条目以获得某个字符串:
var markers_as_str = Array();
for(var index in markers) {
var marker = markers[index];
var str = index+" : "+marker.lat+" "+marker.lng+" "+marker.type;
markers_as_str.push(str);
}
$('#strs').typeahead({
source: markers_as_str
});
您可以自定义matcher
和sorter
选项以检查特定属性。但是您在显示选项时会遇到困难,因此您必须覆盖updater
选项。所有这些都有点过分了,因为您可能不需要它。
我用过这个:
names = [];
for (var k in markers) {
if (markers.hasOwnProperty(k)) {
names.push(k);
}
}
我写了一篇关于这个问题的博客文章,如何使用 Bootstrap Typeahead 使用富对象和类型化对象。关键是将对象键入到某个类中,该类具有要序列化的toString()
方法和要反序列化的fromString()
方法(在 Bootstrap Typeahead updater
函数中用于引用原始类型的对象)。在我的博客中,我以UsState
为例:
UsState.prototype.toString = function() {
return JSON.stringify(this);
};
UsState.fromString = function(serializedState) {
return $.extend(new UsState(), JSON.parse(serializedState));
};
然后在 updater
的预类型定义中:
updater: function(state) {
state = UsState.fromString(state);
$stateMessage.html('<strong>' + state.name + '</strong> has ' + state.numElectoralVotes + ' electoral votes.');
return state.name;
},
请注意其他 Typeahead 方法的定义,以正确处理对象:
highlighter: function(state) {
return $.fn.typeahead.Constructor.prototype.highlighter.call(this, state.name);
},
相关文章:
- Javascript 二进制搜索/插入预处理
- 节点.js未捕获的异常类型错误:无法设置未定义的预处理 ''
- 克隆内容,附加和预处理
- 上传到FTP之前预处理文件
- 2秒后删除新的jQuery预处理节点
- 预处理Emulator for JavaScript(定时/调试示例)
- 脚本预处理的基础知识
- 如何引用引导类型预处理的数据
- 使用 CSV 文件预处理高图表数据
- 使用HTML5 / javascript更正音频音量输出分贝,关闭预处理
- Ruby on Rails 路由前缀,而不是在 .erb.js 文件中进行预处理
- 如何在咖啡脚本中预处理或包含咖啡脚本
- 在将每个 HTML 元素附加到 AngularJS 中的 DOM 之前对其进行预处理
- 如何在 angularjs 中访问预处理
- 拦截和预处理 jQuery-ui 自动完成数据
- 需要带有浏览器化和浏览器化轨道的链轮预处理文件
- 缓慢地从预处理的行中删除背景色
- knockoutjs-custum绑定预处理方法&addBindingCallback
- 无法使用节点预处理程序重建串行端口:404状态代码下载64位nw.lib
- jQuery:预处理和追加<p>标签