Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowData Days is here! Join us now for 60+ days of learning, challenges, and connection. Learn more
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)
Don't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.
Check out the May 2026 Power BI update to learn about new features.