如何在tableau Javascript API中获取参数更改事件中所选参数的值

时间:2017-09-27 10:10:27

标签: javascript tableau dom-events tableau-server

我有以下代码,任何人都可以帮助我:

  $(document).ready( 
    function(){     
        viz = loadReport('<?php echo $url; ?>', 'viz', $(window).height()-$('#viz').offset().top-10, '100%','<?php echo ($login->hide_toolbar==1?true:false); ?>','<?php echo ($login->hide_tabs==1?true:false); ?>', function(){
            viz.addEventListener(tableau.TableauEventName.TAB_SWITCH, onTabSwitch);
            viz.addEventListener(tableau.TableauEventName.PARAMETER_VALUE_CHANGE, onParameterValueChange);
            prepareSavedViewState();
        });

    }
);

 function onParameterValueChange(e){
    //e.preventDefault();
    //alert(e.getEventName());
    //alert(e.getParameterName());
    //alert(e.getParameterName().getCurrentValue());
    //alert(e.getCurrentValue());
    //alert(e.Parameter.getCurrentValue());
    //alert(Parameter.getCurrentValue());
    alert(e.getParameterAsync().getCurrentValue());
}

我正在尝试在实时服务器上获取tableau仪表板的所选参数的值,但没有获取该值。实际上参数对象工作正常但不了解如何获得价值。

1 个答案:

答案 0 :(得分:1)

你有正确的活动布线。在onParameterValueChange函数中,您需要调用getParameterAsync并使用返回的promise对象来获取实际参数值。

请参阅此示例:

function onParameterValueChange(e){
   e.getParameterAsync().then(function(param){
      alert(''+param.getName()
              +' of Type '+param.getDataType()
              +' has value '+param.getCurrentValue().formattedValue);
   });
}