Instantsearch Google地方信息自动填充帮助程序不属于实例

时间:2018-05-10 18:05:03

标签: google-places-api algolia instantsearch.js

我将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,
    })
);

0 个答案:

没有答案