Angularjs scope.safeapply () обновить - PullRequest
0 голосов
/ 14 мая 2018

Моя проблема: я создал Cordova APP с AngularJS.Этот код работает, но у меня есть небольшая проблема.Экран обновляется, когда я нажимаю на экран.Таким образом, нет автоматического обновления.Я попытался использовать $ scope.apply () вместо $ scope.safeApply (), но это не сработало.Даже если в таблице application_data были данные, данные не отображались.

Мой контроллер:

$scope.datas = [];

db.transaction(function(transaction) {
    transaction.executeSql('SELECT * FROM application_data', [], function (tx, results) {
        var len = results.rows.length, i;

        for (i = 0; i < len; i++){
            $scope.id = results.rows.item(i).id;
            $scope.name = results.rows.item(i).name;
            $scope.date = results.rows.item(i).date;

            $scope.datas.push({id: $scope.id, name: $scope.name, date: $scope.date});

        }
    }, null);

    $scope.safeApply();
});

Мой вид:

<div ng-repeat="data in datas">
    {{data.id}} - {{data.name}} - {{data.date}}
</div>

1 Ответ

0 голосов
/ 03 июля 2018

Попробуйте поместить код в $ scope. $ Apply

$scope.datas = [];

db.transaction(function(transaction) {
    transaction.executeSql('SELECT * FROM application_data', [], function (tx, results) {
        var len = results.rows.length, i;

        $scope.$apply(function() {

            for (i = 0; i < len; i++){
                $scope.id = results.rows.item(i).id;
                $scope.name = results.rows.item(i).name;
                $scope.date = results.rows.item(i).date;

                $scope.datas.push({id: $scope.id, name: $scope.name, date: $scope.date});

            }
        });
    }, null);

});
...