Forum Discussion
How does sync slicers work in a custom visual?
I'm trying to make sync slicers work in a custom visual. My custom slicer supports date range selection by creating an advanced filter, and works well on a single page. According to the documentation this requires nothing but adding supportsSynchronizingFilterState to the capabilities.json file. This seems far too simple: when I switch pages in my report, PowerBI calls the constructor and update functions of my custom slicer afresh on each page, and I cannot find any information on the filter state passed to my visual in the options. The sync slicer checkboxes look like this:
But the jsonFilters passed in are empty:
No jsonFilters
Where should I get the data from? There are further documentation hints pointing at FilterManager, but this has been removed in recent versions.
1 Reply
- AdrianCoxRegular Visitor
Further details: the example timeline slicer on Github does work. It's a good deal more complex than my slicer, and I can't currently spot what difference might be significant. To make things even more bizarre, occasionally there is data in the jsonFilter field. Here's my full capabilities.json:
{ "dataRoles": [ { "displayName": "Date Range", "name": "category", "kind": "Grouping" } ], "objects": { "general": { "displayName": "General", "properties": { "selected": { "type": { "bool": true } }, "filter": { "type": { "filter": true } } }} }, "dataViewMappings": [ { "conditions": [ { "Category": { "max": 1 } } ], "categorical": { "categories": { "for": { "in": "category" }, "dataReductionAlgorithm": { "top": {} } } } } ], "suppressDefaultTitle": true, "supportsHighlight": true, "supportsSynchronizingFilterState": true }