storing dc.js filters in URI and restoring them

后端 未结 2 1852
天命终不由人
天命终不由人 2020-12-06 03:44

Here i selected 3 filters 1 from each chart and pasted that encoded url in url param. but when i press decode url button it is redrawing only middle chart filters but not th

相关标签:
2条回答
  • 2020-12-06 04:19

    It looks like your code is correct for the general case, but due to some quirks in the way that dc.js handles filters, you can't just restore a range filter from its serialized form.

    I was able to get it working by adding a special case for arrays:

       for (var i = 0; i< filterObjects.length; i++)
       {
           var filter = filterObjects[i].Filter;
           if(filter instanceof Array) filter = dc.filters.RangedFilter(filter[0], filter[1]);
           dc.chartRegistry.list()[filterObjects[i].ChartID-1].filter(filter);
       }
    

    Here is my fork of your fiddle: http://jsfiddle.net/gordonwoodhull/4dv93aht/10/

    I don't think such special cases should be needed, so I opened an issue here: https://github.com/dc-js/dc.js/issues/819

    0 讨论(0)
  • 2020-12-06 04:21

    Have a look at this question & working example dc.js permalink or href to share the visualisation filter state?

    https://github.com/Edouard-Legoupil/3W-Dashboard/blob/gh-pages/index.html

    0 讨论(0)
提交回复
热议问题