我将Google商家信息自动填充功能实施到了有效的Instantsearch实例中。
mlsearch.addWidget(googlePlacesWidget);
辅助函数如下所示:
var googlePlacesWidget = {
init: function(opts) {
var options = {
types: ['(regions)']
};
var autocomplete = new google.maps.places.Autocomplete(
document.getElementById('pac-input'),
options
);
autocomplete.addListener('place_changed', onPlaceChanged);
function onPlaceChanged() {
var location = autocomplete.getPlace().geometry.location;
var lat = location.lat();
var lng = location.lng();
opts.helper.setQueryParameter('aroundLatLng', lat + ',' + lng);
opts.helper.setQueryParameter('aroundRadius', $('select#radius_changed').val());
opts.helper.search();
}
}
};
这可以很好地过滤成员列表。
但由于某种原因,似乎这个助手不是即时搜索实例的一部分。我有一个重置小部件,适用于任何其他过滤器,但它在设置位置时不会显示。所以问题是,我无法重置它。理想情况下,当用户清除输入时,它也会重置结果,但除了place_changed
之外没有通过Google API进行回调。
如何将此窗口小部件设置为实际过滤器,并在搜索时激活重置按钮。
只是为了完成,这是重置小部件(再次,适用于任何其他实现的过滤器/小部件):
mlsearch.addWidget(
instantsearch.widgets.clearAll({
container: '#clearfilter',
templates: {
link: 'Reset'
},
autoHideContainer: true,
clearsQuery: true,
})
);