The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
On powebi-models there is a enum defined as viewMode, which is used in the definition of switchMode. But the implementation is inconsistent
/** * Switch Report view mode. * * @returns {Promise<void>} */ switchMode(viewMode: models.ViewMode): Promise<void> { let url = '/report/switchMode/' + viewMode; return this.service.hpm.post<models.IError[]>(url, null, { uid: this.config.uniqueId }, this.iframe.contentWindow) .then(response => { return response.body; }) .catch(response => { throw response.body; }); }
As viewMode is an enum, this expression translates into
/report/switchMode/0 or /report/switchMode/1
It makes no sense since the API endpoint expects 'view' or 'edit', as seen in the code examples:
function _Report_switchModeEdit() { // Get a reference to the embedded report HTML element var embedContainer = $('#embedContainer')[0]; // Get a reference to the embedded report. report = powerbi.get(embedContainer); // Switch to edit mode. report.switchMode("edit"); } function _Report_switchModeView() { // Get a reference to the embedded report HTML element var embedContainer = $('#embedContainer')[0]; // Get a reference to the embedded report. report = powerbi.get(embedContainer); // Switch to view mode. report.switchMode("view"); }
So either the type definitions or the implementation should be fixed.
This is fixed.
swithcMode now takes an enum or a string.
Report.switchMode(viewMode: string | ViewMode)
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.