Googleapi - gapi не обновляет объект $ scope, как ожидалось в angularjs - PullRequest
0 голосов
/ 21 февраля 2019

Мне кажется, что я получаю странное поведение из gapi.client.drive.files.list, где я не могу обновить область действия из обещания, которое он возвращает.

angular.module('myApp').controller("folder_controller", function($scope, $q, $http, $rootScope) {
    $scope.list_subfolders = function () {
        gapi.client.drive.files.list({
            'q': "mimeType = 'application/vnd.google-apps.folder'",
            'fields': "nextPageToken, files(id, name, parents, mimeType, description, starred, properties)"
        }).then(function(response) {
            $scope.subfolders = response.result.files;
            console.log($scope.subfolders); 
        }, function(error){
            console.log(error);
        });
    }
});

Когда я запускаю list_subfolders () ...console.log отображает $ scope.subfolders нормально ... но представление никогда не обновляется с этим значением - оно пустое.Я пробовал разные вещи, в том числе просто присваивание $ rootScope, но я никак не могу обновить представление с помощью $ scope.subfolders.

Я неправильно подхожу к этому?Я не могу понять, почему переменная не обновляется.

1 Ответ

0 голосов
/ 21 февраля 2019

Попробуйте это:

angular.module('myApp').controller("folder_controller", function($scope, $q, $http, $rootScope) {
$scope.list_subfolders = function () {
    gapi.client.drive.files.list({
        'q': "mimeType = 'application/vnd.google-apps.folder'",
        'fields': "nextPageToken, files(id, name, parents, mimeType, description, starred, properties)"
    }).then(function(response) {
        $scope.subfolders = response.result.files;

        // you need to refresh the view:
        $scope.$apply();

        console.log($scope.subfolders); 
    }, function(error){
        console.log(error);
    });
}

});

...