AngularJS&Google可视化-使用状态更改处理程序(Google API)在HTML页面上查看$sco

AngularJS & Google Visualization - Visibility of $scope variables (JS) on an HTML page using a state change handler (Google API)

本文关键字:Google HTML API sco 处理 可视化 amp AngularJS 状态 程序      更新时间:2023-09-26

我正在编写一段用于web开发的代码,其中我有一个使用Google可视化API的日期范围和数字范围过滤器的页面。同时,我在整个页面中使用AngularJS。

现在,我的问题如下:我有一个表,其中有一定数量的条目。当应用其中一个过滤器时,我希望在HTML页面上的某个地方显示条目数(==#行)。

我实现这一点的意图是使用Google API的getNumberOfRows()方法,并将结果存储在$scope变量中,以便在页面上使用,理想情况下,每当范围过滤器之一改变状态时都会更新。

我添加了3个监听器,一个用于点击表行(使用selectHandler()),另一个用于处理范围过滤器的状态更改(使用单独的函数stateChangeHandler())。

我将该值存储在变量$scope.numberOfRowsShown中。

整个过程适用于点击(selectHandler)。因此,当单击一个表行时,我会得到更新的正确行数,显示用{{numberOfRowsShown}}(AngularJS)调用HTML页面上的变量。

除了调用函数并将其存储到stateChangeHandler()中的变量$scope.numberOfRowsShown之外,执行完全相同的操作确实会在控制台中为我提供正确的输出,但它不再允许我通过调用{{numberOfRowsShown}}来访问变量。

有什么想法吗?

这是JS代码:

function selectHandler() {
    // this works!!
    $scope.numberOfRowsShown = table.getDataTable().getNumberOfRows();
};
function stateChangeHandler() {
    // this does not work..
    $scope.numberOfRowsShown = table.getDataTable().getNumberOfRows();
    // correct output in the console..
    console.log(table.getDataTable().getNumberOfRows());
};
// Setup listener to listen for clicks on table rows and process the selectHandler.
google.visualization.events.addListener(table, 'select', selectHandler);
// Setup listeners for statechange in the slider range filters.
google.visualization.events.addListener(dateOfLastAccessFilter, 'statechange', stateChangeHandler);
google.visualization.events.addListener(timeSinceLastAccessFilter, 'statechange', stateChangeHandler);

我已经弄明白了。我所需要做的就是重新加载表格!