AngularJS从数据库

时间:2015-12-16 10:43:17

标签: angularjs

我有一个应用程序,可以在加载时从数据库中获取数据。 由于数据库中的数据每隔几秒就会发生变化,因此我想将数据库中的新数据动态添加到HTML页面的表中。 关于如何在不重新加载控制器的情况下实现的任何想法?

目前的代码: app.js

var app = angular.module('myApp', ['ui.bootstrap','countTo']);
app.filter('startFrom', function() {
    return function(input, start) {
        if(input) {
            start = +start; //parse to int
            return input.slice(start);
        }
        return [];
    }
});
app.config(['$compileProvider', function($compileProvider) {
  $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|http?|file|data):/);
}]);

app.controller('customersCrtl', function ($scope, $http, $timeout) {
    $scope.$emit('LOAD');
    $scope.progressBar = { progress : 0 };
    $http.get('ajax/getCustomers.php').success(function(data){
        $scope.list = data;
        $scope.currentPage = 1; //current page
        $scope.entryLimit = 50; //max no of items to display in a page
        $scope.filteredItems = $scope.list.length; //Initially for no filter
        $scope.totalItems = $scope.list.length;
        $scope.$emit('UNLOAD');
    });
    (function progress(){
        if($scope.progressBar.progress < 100){
            $timeout(function(){
                $scope.progressBar.progress += 1;
                progress();
            },5);
        }
    })();

    $scope.setPage = function(pageNo) {
        $scope.currentPage = pageNo;
    };
    $scope.filter = function() {
        $timeout(function() {
            $scope.filteredItems = $scope.filtered.length;
        }, 10);
    };
    $scope.sort_by = function(predicate) {
        $scope.predicate = predicate;
        $scope.reverse = !$scope.reverse;
    };

});

app.controller('delayController',['$scope',function($scope){
    $scope.$on('LOAD',function(){$scope.loading=true});
    $scope.$on('UNLOAD',function(){$scope.loading=false});
    }]);

app.controller("PostsCtrl", function($scope, $http, $timeout) {
    $scope.progressBarScanned = { progressScanned : 0 };
(function tick() {
  $http.get('ajax/scanStatus.php').
    then(function(response) {
      $scope.posts = response.data;
      $scope.scanProgerss = $scope.posts[0].isScanning;
      $scope.scanPercentage = $scope.posts[0].scanPercentage;
      $scope.timeToFinish = $scope.posts[0].timeToFinish;
      $scope.amountScanned = $scope.posts[0].amountScanned;
      $scope.totalItemsToScan = $scope.posts[0].totalItemsToScan;
      $scope.avgScanTimePerItem = $scope.posts[0].avgScanTimePerItem;
    });
    $timeout(tick, 1000);
})();
(function progressScanned(scanned){
        if($scope.scanPercentage < 100){
            $timeout(function(){
                $scope.progressScanned.progress = 1;
                progressScanned();
            },5);
        }
    })();
});


//Modal
var ModalDemoCtrl = function ($scope, $modal) {
    $scope.open = function (imageKey) {
    $modal.open({
        templateUrl: 'myModalContent.html',
        backdrop: true,
        windowClass: 'full',
        controller: function ($scope, $modalInstance, data, imageKey) {
            $scope.data='';
            $scope.data = data;

            $scope.getImage = function () {
                return $scope.data[imageKey];
            }

            $scope.cancel = function () {
                $modalInstance.dismiss('close');
            };
        },
        resolve: {
            data: function() {
                // access outer controller scope by using $scope.$parent
                return $scope.$parent.data;
            },
            imageKey: function() {
                return imageKey;
            }
        }
    });
}};

0 个答案:

没有答案