在我的Visualforce页面的Javascript中,页面对象上的getVisuals方法对我不起作用。在控制台日志中,我看到:
TypeError: Object doesn't support property or method 'getVisuals'
背景:我将以我不是开发人员为开头。我充其量是一名黑客,并且我不精通Javascript,但是我对语言有基本了解。
我已使用以下教程成功在Salesforce中实现了PowerBI:https://powerbi.microsoft.com/en-us/blog/embedding-a-power-bi-report-into-salesforce/
现在,我正在尝试通过预先设置一些切片器来扩展功能。第一步是使用页面对象的getVisuals方法获取切片器名称,但是,每当我调用getVisuals时,都会收到一条错误消息,指出该方法不存在。
我知道报告需要呈现,并且已经将getVisuals执行移到report.on(“ rendered”)事件中,但是仍然失败。我可以肯定我的事件调用很好,因为可以看到“已渲染”的日志。
以下是相关代码:
window.onload = function() {
... (stuff from tutorial above to load the report) ...
var element = document.getElementById('myReport');
var report = powerbi.embed(element, embedConfiguration);
report.on("loaded", function(){
console.log("loaded");
});
report.on("rendered", function(){
console.log("rendered");
report.getPages()
.then(function (pages) {
// Retrieve active page.
var activePage = pages.filter(function(page) {
return page.isActive
})[0];
console.dir(activePage);
activePage.getVisuals()
.then(function (visuals) {
console.log(
visuals.map(function(visual) {
return {
name: visual.name,
type: visual.type,
title: visual.title,
layout: visual.layout
};
})
);
})
.catch(function (errors) {
console.log(errors);
});
})
.catch(function (errors) {
console.log(errors);
});
});
}
该日志显示“已渲染”消息,并输出页面属性,但是缺少getVisuals方法,其余的代码其余部分失败。
如果我在window.onload事件函数之外分别调用getVisuals函数的代码,则会遇到相同的错误。
我还在日志中看到此错误(无论是否尝试调用getVisuals):
ERROR Error: Uncaught (in promise): Object: {"data":"","status":401,"activityId":"ff2eaf1f-2d26-406a-a8f4-cb44289872c1","requestId":"1d418ee5-fc82-93e9-01cf-5bdc99edab0d","responseRequestId":null,"pendingRequestCount":4}
我想知道那个诺言是否与渲染调用有关?
还应注意:报告加载正常且具有交互性等。
不知道我在做什么错,但是可以提供任何帮助!