首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何引用bootstrap-typeahead的数据?

如何引用bootstrap-typeahead的数据?
EN

Stack Overflow用户
提问于 2012-06-27 06:18:26
回答 3查看 994关注 0票数 1

这是我的数据:

代码语言:javascript
复制
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不是选择我的标记对象的正确语法。我应该用什么来代替呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-27 08:26:33

我使用了这个:

代码语言:javascript
复制
names = []; 
for (var k in markers) {
    if (markers.hasOwnProperty(k)) {
        names.push(k);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2012-06-27 08:09:43

您可以尝试以某种方式序列化对象。在我的example (jsfiddle)中,我连接了每个条目以获得特定的字符串:

代码语言:javascript
复制
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
});

您可以自定义matchersorter选项以检查特定属性。但是在显示选项时会有困难,所以必须覆盖updater选项。所有这些都有点过头了,因为你可能不需要它。

票数 0
EN

Stack Overflow用户

发布于 2013-06-21 22:52:13

我写了一篇关于这件事的博文,How to use rich objects and typed objects with Bootstrap Typeahead。关键是将您的对象键入某个类,该类有一个要序列化的toString()方法和一个要反序列化的fromString()方法(将在Bootstrap Typeahead updater函数中使用,以引用原始类型的对象)。在我的博客中,我以UsState为例:

代码语言:javascript
复制
UsState.prototype.toString = function() {
    return JSON.stringify(this);
};

UsState.fromString = function(serializedState) {
    return $.extend(new UsState(), JSON.parse(serializedState));
};

然后在updater的Typeahead定义中

代码语言:javascript
复制
updater: function(state) {
    state = UsState.fromString(state);
    $stateMessage.html('<strong>' + state.name + '</strong> has ' + state.numElectoralVotes + ' electoral votes.');
    return state.name;
},

请注意正确处理对象的其他Typeahead方法的定义:

代码语言:javascript
复制
highlighter: function(state) {
    return $.fn.typeahead.Constructor.prototype.highlighter.call(this, state.name);
},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11216730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档