从上周开始,当我尝试应用页面过滤器而不先设置报告过滤器时,我在控制台上收到错误:未处理的承诺拒绝:无法在“窗口”上执行“ postMessage”:TypeError:无法读取属性“ instanceOfIVisualLevel”的undefined无法克隆...
使用演示,可以对此进行测试:https://microsoft.github.io/PowerBI-JavaScript/demo/v2-demo/index.html#
出什么问题了?演示中是否缺少某些内容?
答案 0 :(得分:0)
事实证明,这是Power BI Embedded后端存在的问题...
https://github.com/firebase/functions-samples/blob/master/quickstarts/thumbnails/functions/index.js
使用Power BI嵌入式javascript API设置或获取页面级过滤器或视觉级过滤器时,客户可能会收到错误消息。解决方法是,客户可以在负载配置中传入任何过滤器对象。工程师正在调查此问题。下次更新时间:太平洋标准时间(PDT)上午9/10/18。
但是,截至本回答之时,此问题尚未解决,Power BI支持页面指出下一次更新将在9月14日(2018)PDT 10:00。
但是,有一个非常简单的解决方法。确保将一个空的过滤器数组传递到embed配置对象中,一切正常。
<?php
session_start();
// Define an array with pass as key and the value is the url to redirect
$passToUrl = [
'1234p' => 'http://www.google.com',
'5678n' => 'http://yahoo.com'
];
if (isset($_POST['btn_go'])) {
if ($_SESSION['count'] >= 3) {
$msg['msg'] = "max_count";
} else if(array_key_exists('pwd', $_POST)) { // Test if the user submitted a pass before using it
$pwd = trim($_POST['pwd']);
// The pass is defined in the array
if (array_key_exists($pwd, $passToUrl)) {
$_SESSION['count'] = 0;
$_SESSION['user_auth'] = 1;
// let's redirect to the good url
header('Location: ' . $passToUrl[$pwd]);
exit();
} else {
$_SESSION['count'] = $_SESSION['count'] + 1;
$msg['msg'] = "wrong";
}
}
echo json_encode($msg);
} else {
echo json_encode(["msg" => "wrong"]);
}
然后,您应该可以按照自己喜欢的顺序显式设置报告/页面/视觉过滤器。