从Google脚本中获取数据时,Angular变量未在页面上刷新

时间:2018-09-24 06:35:53

标签: angularjs google-apps-script

执行一个Google Script APP。使用服务器端方法返回字符串数组。 getClassRoomList()

能否请您指出我当前的HTML有什么问题?由于成功处理程序在响应时运行良好。但是ng变量消息没有反映在页面上;而jQuery确实会填充表格。

        <!DOCTYPE html>
        <html ng-app="myApp">
            <head>
                <base target="_top">
                <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
                <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.js"></script>
                <script>
                    var app = angular.module('myApp',[]);
                    app.controller('mainCtrl',function($scope){
                    $scope.message = [];
                    $scope.populateTable = function(array){
                        //Setting ng variable; but the page doesn't show anything
                        $scope.message = array;

                        //Setting the Table by JQuery; it does work.
                        var table = $('#myTable');
                        table.empty();
                        for (var i = 0; i < array.length; i++) {
                            var item = '<tr><td><div class="classname">' + array[i] +'</div></td></tr>';
                            table.append(item);
                        }
                    };
                    $scope.mainClick = function(){
                        $scope.message = $scope.message + 'chirag';
                        google.script.run.withSuccessHandler($scope.populateTable).getClassRoomList();
                    };
                    });
                </script>
            </head>
            <body ng-controller="mainCtrl">
                <button ng-click="mainClick()">Proceed</button>
                <table id="myTable"></table>
                <div ng-bind="message"></div>
            </body>
        </html>

1 个答案:

答案 0 :(得分:0)

这有效。谢谢。 google.script.run.withSuccessHandler((e) => {$scope.populateTable(e); $scope.$apply();}).getClassRoomList();